Skip to content

OpenAPI

OpenAPIのyamlを結合する

一つのopenapi.yamlに定義を書いていると、ファイルが肥大化して管理というか編集が大変になる。 で、分割するには$refを使って相対ファイル指定することで、外部ファイルを参照できる。 ただ、Swagger UIでダウンロードしようとすると、ルートのファイルしか取れない(相対ファイルを辿ればとれるだ Read more

Prism使ってみた

APIサーバーのモックを手っ取り早くほしかったのでstoplightio/prism: Turn any OpenAPI2/3 and Postman Collection file into an API server with mocking, transformations and validations.を試してみた。 POSTのレスポンスがexample指定してるはずなのに、空で返ってきてよくわからない。 モック対象がそんなに多くなかったから、とりあえずgoで組ん Read more

PrismaとOpenAPI

Prismaのドキュメント眺めていて、Build a REST API with NestJS, Prisma, PostgreSQL and Swaggerを見つけた。 PrismaというかNestJSの機能かもしれないけれど、OpenAPIドキュメントも表示できるっぽい。 これでいい感が出てきた。

OpenAPI generatorのテンプレート

以前、OpenAPI generatorの出力をカスタマイズするにはJavaを読み解かねば・・みたいなことを書いていた。 OpenAPIとsqlcの連携 - umemak OpenAPI generatorのソース - umemak 公式のUsing Templatesによると、author templateを指定すれば組み込みテンプレートが出力される Read more

OpenAPIとAPI Gateway

API GatewayにOpenAPIの定義を適用できる。 OpenAPI を使用した REST API の設定 - Amazon API Gateway API Gatewayの後ろにLambdaを使えば、EC2とかでGoのコンテナ動かすより安上がりになるのではないか?という思い付き。 この場合、APIサーバーはどういう構成で作るのかイメージがわかない。 現状は、openapi- Read more

OpenAPIのTypeScriptクライアント

結局、いくつか動かして試してみた。additional-propertiesは無指定で。 Documentation for the typescript-fetch Generator ReferenceError: _ is not defined Documentation for the typescript-node Generator Module not found: Can't resolve 'request' requestパッケージはDeprecated!らしい。 Documentation for the typescript-axios Generator とりあえず動いた。 axiosパッケージの追加インストールが必要。 ということで、typescript-ax Read more

OpenAPIで生成したサーバーのテスト2

E2Eテスト書くなら、OpenAPIのクライアントコードジェネレータ使って出力したもの使えばよいのでは? と思いついたので、どのクライアントにしようかとGenerators Listを眺める。 せっかくだからTypeScriptが良いなと思うが、11種類もあってどれが適切なのか判断付かない。 実際に生成して Read more

OpenAPIで生成したサーバーのテスト

よくわからない。 ググるとhttptest使う例が良く出てくるけど、型が合わなくて組み立てられない。 仕方ないので、APIサーバー起動してhttp.NewRequestWithContextで叩いて結果を見るという、E2Eっぽいテストに落ち着きそう。

OpenAPIクライアントの使い方

Documentation for the go Generatorで生成したは良いけれど、使い方がわからず試行錯誤してみていたら、生成したdocsの中にサンプルコードが書かれていた。。 構造体のドキュメントとかだと思ってスルーしてたのが敗因。 生成物はちゃんと見ましょう。

OpenAPI generatorのソース

openapi-generator/GoServerCodegen.java at master · OpenAPITools/openapi-generator この辺りから読み始めればよいのかな? けどJavaかぁ。。 Javaは出始めのころちょっと触って、今もそうかもしれないけど、パッケージ名の命名にドメインを逆順で、みたいのが当時ドメインとか持ってなくてどうすればいいんだ?ってなって躓いた。 あとなんかインポートするの長くて呪文みたいだなーって思っ Read more