React Swagger 2.0定義のAPIを使用するネイティブアプリを作成しています。Swaggerのリポジトリ にアクセスしましたhttps://github.com/ swagger-api/swagger-codegen#where-is-javascript であり、 にあるJavascriptジェネレーターをポイントしていますhttps://github.com/swagger-api/swagger-js 。
問題は、ジェネレーターが動的であることです。モバイルアプリにクライアントを埋め込むので、動的ジェネレーターはオプションではありません。彼らはまた、 https://github.com/wcandillon/swagger-js-codegen で利用可能なサードパーティのプロジェクトがあると言っています。はもはや維持されておらず、 https://github.com/swagger-api/swagger-codegen をポイントしています。 (サードパーティジェネレーターは機能しますが、新しいエンドポイントが到着したときにAPIクライアントを更新するため、いつでも機能しなくなる可能性がある非推奨のツールを使用したくありません。また、このツールは、とにかく本当に良いコードを生成しません。それはそれ自身のレポで言う。)
この時点で行き詰まっています。 React Nativeで使用するためにSwagger定義から静的Javascriptクライアントを生成するためにサポートされている方法は何ですか?
Swagger Codegen を使用して、JavaScriptクライアントSDKを生成できます。ただし、ここで使用されているJavaScriptコードはReact Nativeのフェッチ実装では機能しません。これを克服するには、ApiClient
の実装を拡張してReact次のようなネイティブフェッチ:
class CustomApiClient extends ApiClient {
callApi(path, httpMethod, pathParams,queryParams,collectionQueryParams, headerParams, formParams, bodyParam,authNames, contentTypes, accepts,returnType, callback) {
return fetch(`${this.basePath}${path}`,
{
method: httpMethod
});
}
}
後で他の方法で使用する
class CustomUsersApi extends UsersApi {
constructor() {
super(new CustomApiClient());
}
}
これに関する詳細な実装については、ブログ投稿を参照してください https://medium.com/@lupugabriel/using-swagger-codegen-with-reactnative-4493d98cac15