Lightning talk (3 mins)

openapi-psr7-validator を Middleware に組み込んでみた PHP Conference Japan 2020

8
sogaoh sogaoh sogaoh

OpenAPI PSR-7 Message (HTTP Request/Response) Validator^1 というやや新しめのライブラリがあります。
定義された REST API 仕様に即しているかをチェックしてくれるのですが、これを Laravel の Middleware に組み込むという取り組みをしました。その結果、

  • レスポンス^2 のみならずリクエストに関してもAPI仕様に即しているかをチェックできるようになった
  • API ごとに テストメソッドを作らなくても良くなって、テスト実装負荷が少なくなった

といったメリットを得ることができました。
一方で、未解決の課題もあり、応急処置としてリクエスト・レスポンス両方を Validate するクラスと、レスポンスのみを Validate するクラスに分けるといった苦し紛れなこともしました。

本LTでは、この実装における良いところ悪いところを紹介して、ライブラリ活用についての何らかの知見を共有できればと思います。