1
2

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.

OpenAPI(Swagger)とPrismでモックサーバーを建てたらテストが捗った

Posted at

背景

先日、とある開発にてWebAPIを複数作成することとなり、APIの単体テストやサブシステム間のテストをどのように進めるか考えていた際に、モックサーバーというものをご教示いただいたことで、その後のテストが大変捗ったため、個人の記録として書き記すものです。

先人たちの知恵をお借りするなどして解決できたことを、この場をお借りして感謝するとともに、大変恐縮ですが自分のメモとして、こちらへまとめておきます。

OpenAPI(Swagger)とは

API構造を記述するインターフェース記述言語です。yamlもしくはjsonで記述することで、綺麗なAPIドキュメントを作成することができたり、この記事で紹介するようにモックサーバを建てることができます。

https://swagger.io/
https://swagger.io/tools/swagger-ui/
https://swagger.io/tools/swagger-editor/

Prismとは

API設計関係のツールを提供するStoplight社によって開発されている、OSSのHTTPモックツールです。OAS2.0およびOAS3.0に準拠したドキュメントから、自動的にモックサーバを構築することができます。
https://stoplight.io/open-source/prism
https://github.com/stoplightio/prism

環境

(モックサーバー)
-AWS EC2 (Amazon Linux 2)
-Docker

(OpenAPI(実体)の技術スタック)
API
-Python 3.10.1
-toranado 6.2
DB
-Amazon Aurora/MySQL 5.7
テストツール
-Postman

サーバーの構築方法については、以下の参考記事がとてもよくまとまっていますので、そちらをご参照くださいませ。
手順に沿って進めれば簡単にモックサーバーを構築できテストも進められます。

特にサブシステムや、フロントエンド/バックエンドの担当がベンダーやプロジェクトチームで分かれる際は、組織も縦割りであることからコミュニケーションにも壁ができてしまったり、開発環境やテスト環境も縦割りで個別に作られてしまったりと、なかなか思うように協力し合い共同で使える環境が構築されないケースもあるかと思います。
そういった際に、APIのパラメータとレスポンス項目とそれらのサンプル情報だけでもあれば、システム間や担当間の隔たりも、こういったモックサーバーを建てることで、スムーズに開発やテストが行なえることを、今回特に実感として得ました。

今後は、さらなるテストの効率化のため、このモックサーバーをCI/CDに絡めることで、コーディング→デプロイ→自動テスト(postman+mockサーバー)→検証と自動で進められるようにしたいと考えております。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?