OpenAPI-Generator-typescript-fetch

562 阅读1分钟

openapi-generator

Nexus NPM

  • admin/security/realms add npm Bearer Token Realm
  • admin/repository/repositories add Type:hosted Format:npm

npm publish

npm adduser -registry http://192.168.1.14:8081/repository/npm-love
npm config set registry http://192.168.1.14:8081/repository/npm-love
npm login or yarn login
npm publish or yarn publish

using openapi-generator typescript-fetch

#another openapi2ts
npx openapi-typescript http://domian.com/v2/api-docs --output dz.ts
#OpenAPI Generator Online Docker Image
docker run -d -p 8888:8080 openapitools/openapi-generator-online

curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' \
-d '{"options": {"npmName": "love-api","typescriptThreePlus":true,"supportsES6":true,"npmRepository":"http://192.168.1.14:8081/repository/npm-love/"},"openAPIUrl": "http://domian.com/v2/api-docs"}' \
'http://localhost:8888/api/gen/clients/typescript-fetch'
#OpenAPI Generator node-cli
npm install @openapitools/openapi-generator-cli
openapi-generator-cli generate \
  -i http://domian.com/v2/api-docs \
  -o src/generated-sources/openapi \
  -g typescript-fetch \
  --additional-properties=supportsES6=true,typescriptThreePlus=true

#  add a script to  package.json file's  generator from npm via `npm run codegen`.
 "codegen": "rm -rf src/generated-sources/openapi; openapi-generator-cli generate -i http://domian.com/v2/api-docs -o src/generated-sources/love-api -g typescript-fetch --additional-properties=supportsES6=true,npmVersion=0.0.1,typescriptThreePlus=true"

#Fix Type 
vi src\models\index.ts
export  type Ref = object
export  type RefToJSON = object 
#client call 
import {DefaultApi,Configuration} from 'love-api'

let client = new DefaultApi(new Configuration({ basePath: '/api' }));
const interceptFetchRes = (context) => {
const { response } = context;
// error handle
  if (response.status < 200 || response.status >= 300) {
    
  }else{
    return Promise.resolve(response);
  }
};
client = client.withPostMiddleware(interceptFetchRes);
client.queryAccountListUsingGET().then((data=>console.log(data)))