8
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

弁護士ドットコムAdvent Calendar 2021

Day 8

チームで内部API開発をするときのツール

Last updated at Posted at 2021-12-07

まえがき

  • 最近はBFFアーキテクチャの採用により、サーバサイドは内部(Internal)APIとしてAPIを作成することが多い

  • チームで開発するために、どのAPIが何を示しているかはわかりやすくしておきたい

    • サーバ・フロントどちらを触るときでもAPI定義を見れば実装できるようにしたい
    • 各エンドポイントが何をしているか、コードを見ればわかるけど毎回したくはない
  • チーム開発でAPI開発をするときにどのようなツールを利用していたかについて記載する。

前提

  • いわゆるREST APIを採用 (gRPCではない)
  • OpenAPI3.0 を仕様

VSCode拡張機能

  • Swagger Viewer
  • API定義をプレビューできる拡張機能
  • 拡張機能名はSwaggerとついているが、OpenAPI3.0でも問題なくプレビューが可能
  • いわゆるライブリロード機能があり、編集→反映がスムーズに行えるのが良い
  • 図はサンプルなAPIを表示した例
    スクリーンショット 2021-11-29 13.25.25.png

OpenAPI extension for Visual Studio Code

Redoc

<body>
    <redoc spec-url='http://petstore.swagger.io/v2/swagger.json'></redoc>
    <script src="https://cdn.jsdelivr.net/npm/redoc@latest/bundles/redoc.standalone.js"> </script>
</body>
  • oapiの場合 sepc.yamlを指定すれば良い。
  • 実運用上は GitHub Pagesのようなところにホスティングして開発者が確認できるようにしている
  • 図はサンプルAPIを表示した例
    スクリーンショット 2021-11-29 13.32.09.png

oapi-codegen

  • oapi-codegen
  • Goでサーバサイドを書くために、oapi-codegenを利用してサーバサイドのコードを生成している

まとめ

  • 各種ツールを利用することで、内部API開発を効率的にできるようになった。
  • API定義があることで、サーバー <-->フロント間でやり取りする際の共通言語として利用できるようになった。
  • また、サーバーサイドを主としていた人がフロント側を行う際にもよい取っ掛かりとなった。
8
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?