LoginSignup
0
1

More than 3 years have passed since last update.

Slack WebAPIのSpecファイルが修正されたのでOpenAPI GeneratorでPHPのコードを自動生成してみた

Posted at

はじめに成果物

↑これから

↑これがコマンド一発で生成できました

背景

Slackは外部から実行可能なWebAPIの仕様をOpenAPI(Swagger) Specificationとして公開しています

※ OpenAPIについてはこちら

以前SlackのWebAPIを呼び出すアプリを作っていたとき、OpenAPI Generatorを利用してPHPのコードを自動生成しようとしていましたが、当時のSpecファイルに不具合があり生成できませんでした

以下のissueが上がっていたのでウォッチしていたのですが、修正がリリースされたようなので改めてOpenAPI Generatorでコード生成を試してみました

準備

  • macOS 10.14.5
  • docker 18.09.2

OpenAPI GeneratorはDockerイメージが提供されているので、Dockerが使える環境ならすぐに利用可能です

手順

対象は以下のSlack公式WebAPIのSpecファイルです

コード自体はコマンド一発で生成可能です

docker run --rm -v $(pwd)/slack-openapi-php:/out \
  openapitools/openapi-generator-cli generate \
  -i https://raw.githubusercontent.com/slackapi/slack-api-specs/master/web-api/slack_web_openapi_v2.json \
  -g php -o /out

docker runopenapitools/openapi-generator-cliイメージを指定し、対象Specファイルは-iオプションでGitHubのURLを直接指定しています

変換する言語を-gオプションで指定し、成果物の出力先を-oオプションで指定しています

成果物は以下のようになりました

README.mdやドキュメントも生成されるので、自前でguzzlecURLを使って実装する際の参考としても効果的に使えそうです

まとめ

SlackのOpenAPI SpecからOpenAPI Generatorを利用してPHPのクライアントコードを生成してみました

OpenAPI GeneratorはSpecファイルさえ適切に定義されていれば、PHPでのクライアント以外にも多様な変換が可能です

Specファイルを参照しても実装のイメージがつかないようなときに、一度実装中の言語で生成できないか試してみるのもいいかもしれません

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