search
LoginSignup
3
Help us understand the problem. What are the problem?

bengo4弁護士ドットコム Advent Calendar 2021 Day 8

posted at

updated at

Organization

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

まえがき

  • 最近は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定義があることで、サーバー <-->フロント間でやり取りする際の共通言語として利用できるようになった。
  • また、サーバーサイドを主としていた人がフロント側を行う際にもよい取っ掛かりとなった。

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
What you can do with signing up
3
Help us understand the problem. What are the problem?