More Related Content
Similar to カラーミーAPIドキュメントの今後 (20)
カラーミーAPIドキュメントの今後
- 3. 現状の開発手順
1. APIを実装する
2. interpolのYAMLを書く
3. APIをデプロイする
4. wwwにあるドキュメントを直す
5. wwwをデプロイする
name: show_shop
route: /v1/shop.json
method: GET
definitions:
- message_type: request
versions: ["1.0"]
path_params: {}
query_params: {}
schema: {}
examples: []
- message_type: response
versions: ["1.0"]
status_codes: ["200"]
schema:
type: object
properties:
shop:
type: object
- 4. 課題と解決策
● 課題
○ ドキュメントを手で書いている
○ API開発とドキュメント更新とプルリク2回出している
○ デプロイも2回やっている
○ Interpolがもうメンテナンスされてない
● 解決策
○ Interpolをやめて別の仕様に則ってAPI仕様を書く
○ その仕様からドキュメントを自動生成する
- 6. OpenAPI
● 概要
○ RESTful APIを記述するための仕様
○ Swagger 2.0ベース
○ 3.0.0-RC.0が最新
● 周辺ツール
○ Swagger Editor
○ Swagger Codegen
○ Swagger UI
○ など
- 7. OpenAPIの例
:
paths:
/pets:
get:
description: ...
operationId: findPets
parameters:
- name: limit
in: query
description: ...
type: integer
format: int32
responses:
"200":
description: pet response
schema:
type: array
items:
$ref: '#/definitions/Pet'
default:
description: unexpected error
schema:
$ref: '#/definitions/Error'
swagger: "2.0"
info:
version: 1.0.0
title: Swagger Petstore
description: ...
termsOfService: http://swagger.io/terms/
contact:
name: Swagger API Team
email: foo@example.com
url: http://example.com
license:
name: MIT
url: http://github.com/.../LICENSE-MIT
host: petstore.swagger.io
basePath: /api
schemes:
- http
consumes:
- application/json
produces:
- application/json
:
その他の例は github.com/OAI/OpenAPI-Specification で
- 14. まずは ReDoc でいいんじゃないか感
● 工数は抑えたい
● ちょっとならカスタマイズできそう
○ ロゴと色をいじるくらい
○ どうしても満足できないときは自作も視野に入れる
■ 突き詰めるとJSONを取ってきてテンプレに当てはめるだけ
● 他のツールへ乗り換えが難しくない
○ OpenAPIのYAMLは書き直さなくていい
- 16. 現状 → 今後
1. APIを実装する
2. interpolのYAMLを書く
3. APIをデプロイする
4. wwwにあるドキュメントを直す
5. wwwをデプロイする
1. APIを実装する
2. OpenAPIのYAMLを書く
3. APIをデプロイする
→ spec.jsonが更新される
→ ドキュメントも更新される
- 17. 決めないといけないこと
● リポジトリの名前
○ ReDocを含んだHTML一式を管理する場所
● OpenAPI JSONのURL
○ https://api.shop-pro.jp/v1/spec.json
○ https://api.shop-pro.jp/v1/swagger.json
○ https://api.shop-pro.jp/v1/openapi.json
● 新ドキュメントのURL
○ https://shop-pro.jp/?mode=api_interface
○ https://api.shop-pro.jp/v1/docs
○ https://api-doc.shop-pro.jp/v1