Text
Page: 1
OpenAPI 3 によるスキー
マラスト開発
2019-08-01
表参道.rb #49
うなすけ
Page: 2
自己紹介
名前 : うなすけ
仕事 : 株式会社バンク (エンジニア)
インフラ寄りサーバーサイドエンジニア
Ruby, Rails, Kubernetes…
GitHub @unasuke
Mastodon @unasuke@mstdn.unasuke.com
Twitter @yu_suke1994
Page: 3
OpenAPI 3
https://www.openapis.org/
YAMLやJSONで REST APIの仕様を記述するやつ
Swaggerとか聞いたことある人多いんでは
Page: 4
OpenAPI 3
スキーマファースト開発で使われる
serverとclientがAPIのschemaを定義してから開発
手戻りが少ない
documentができる
スキーマファースト開発のススメ - onk.ninja
Page: 5
OpenAPI 3 例
openapi: 3.0.0
info:
title: Sample API
description: Optional multiline or single-line description
version: 0.1.9
servers:
- url: http://api.example.com/v1
description: Optional server description, e.g. Main (production) server
- url: http://staging-api.example.com
description: Optional server description, e.g. Internal staging server for testing
paths:
/users:
get:
summary: Returns a list of users.
description: Optional extended description in CommonMark or HTML.
responses:
'200':
# status code
description: A JSON array of user names
https://swagger.io/docs/specification/basic-
structure/
Page: 6
現実世界には様々なことがある
途中からOpenAPIを導入したい
大量の定義を書かねばならぬ
タスクがパンク
終了
Page: 7
config/routes.rb があるじゃん
ここからなんとか paths のやつだけ自動生成できな
いか?
Page: 8
できた
https://github.com/unasuke/
openapi3_definition_generator-rails
Page: 9
つらみ
ここからコードを見ながら話します
Page: 10
つらみ
何もかもがPrivate API