Files
2023-01-03 00:04:38 +00:00

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 any response.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.

  1. 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.

  1. swagger-editor calls the appropriate execute method that was created by swagger-client to 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.