1.8 KiB
Swagger-client is used as middleware to transform generator responses,
which also includes function methods alongside data objects.
fetch GET call to SwaggerClient(url, [options]) will return response.apis methods.
- reminder to attach
.catch()to anyresponse.apis.[method]call
response.apis.clients:
- clientOptions: ƒ(parameters)
- downloadFile: ƒ(parameters)
- generateClient: ƒ(parameters)
- getClientOptions: ƒ(parameters)
response.apis.servers:
- downloadFile: ƒ(parameters)
- generateServerForLanguage: ƒ(parameters)
- getServerOptions: ƒ(parameters)
- serverOptions: ƒ(parameters)
Summary
In order to download a generated definition, legacy swagger-editor made two calls to swagger-client.
- Given OAS3 or Swagger2/OAS2 definition, swagger-editor makes a request to Generator3 or Generator2 respectively.
Generator3/Generator2 returns a response that includes it's own definition, which swagger-client, as middleware, translates the defintion included in Generator's response into a more usable response.apis.clients format. This format also includes new execute methods for swagger-editor to call.
swagger-editorcalls the appropriateexecutemethod that was created byswagger-clientto download the generated definition. Note, Generator3 returns the Blob directly, while Generator2 returns a json object containing an URI link to the Blob.
Additionally, legacy swagger-editor saved these methods to React state for general purpose use, e.g. downloadFile vs clientOptions.
In this new version of swagger-editor, use of swagger-client has been deprecated, so these methods are no longer available or saved. Equivalent functionality to directly interface with Generator3/Generator2 now exists in topbarActions. This change also should now always yield a deterministic final result.