Slide 1

Slide 1 text

#microcms_meetup

Slide 2

Slide 2 text

目次 2 ● そもそも OpenAPI とは? ● microCMS の OpenAPI 連携機能の紹介 ● microCMS の API の未来について #microcms_meetup

Slide 3

Slide 3 text

自己紹介 ● 入沢翼 (@lambdasawa) ● https://www.lambdasawa.me/ ● microCMS のバックエンドエンジニア 3 #microcms_meetup

Slide 4

Slide 4 text

目次 4 ● そもそも OpenAPI とは? ● microCMS の OpenAPI 連携機能の紹介 ● microCMS の API の未来について #microcms_meetup

Slide 5

Slide 5 text

そもそも OpenAPI とは? ● RESTful API の仕様を表現するための仕様 ● 言語非依存 & 機械可読 (JSON or YAML) ● 人間に優しいフォーマットにも変換できる 5 #microcms_meetup

Slide 6

Slide 6 text

想定する API の例 6

Slide 7

Slide 7 text

OpenAPI 定義ファイル 7

Slide 8

Slide 8 text

OpenAPI 定義ファイル 8

Slide 9

Slide 9 text

OpenAPI 定義ファイル 9

Slide 10

Slide 10 text

OpenAPI 定義ファイル (paths) 10

Slide 11

Slide 11 text

OpenAPI 定義ファイル (paths) 11

Slide 12

Slide 12 text

OpenAPI 定義ファイル (paths) 12

Slide 13

Slide 13 text

OpenAPI 定義ファイル (paths) 13

Slide 14

Slide 14 text

OpenAPI 定義ファイル (components) 14

Slide 15

Slide 15 text

OpenAPI 定義ファイル (components) 15

Slide 16

Slide 16 text

OpenAPI 定義ファイル (components) 16

Slide 17

Slide 17 text

OpenAPI 定義ファイル (components) 17

Slide 18

Slide 18 text

OpenAPI 定義ファイル (components) 18

Slide 19

Slide 19 text

OpenAPI 定義ファイル (components) 19

Slide 20

Slide 20 text

OpenAPI を使うメリット ● 曖昧さが無い ● 「foo が空になる」とは? ○ {“foo”: “”} なのか? ○ {“foo”: null} なのか? ○ {} なのか? 20 #microcms_meetup

Slide 21

Slide 21 text

OpenAPI を使うメリット ● 豊富なエコシステムと連携できる ● コード生成 (openapi-generator など) ● ドキュメント生成 (Swagger UI, ReDoc, RapiDoc) ● モックサーバ生成 (Prism) ● 自動バリデーション (committee-rails, express-openapi-validator) ● GUI エディター (Stoplight Studio) 21 #microcms_meetup

Slide 22

Slide 22 text

目次 22 ● そもそも OpenAPI とは? ● microCMS の OpenAPI 連携機能の紹介 ● microCMS の API の未来について #microcms_meetup

Slide 23

Slide 23 text

microCMS の OpenAPI 連携機能の紹介 23 (画面は開発中のものです)

Slide 24

Slide 24 text

コード生成をするコマンド 24 #microcms_meetup

Slide 25

Slide 25 text

API 一覧の補完 25 #microcms_meetup

Slide 26

Slide 26 text

API 一覧の補完 (確定後) 26 #microcms_meetup

Slide 27

Slide 27 text

クエリストリングの補完と型チェック 27 #microcms_meetup

Slide 28

Slide 28 text

レスポンスボディの補完 28 #microcms_meetup

Slide 29

Slide 29 text

リクエストボディの補完と型チェック 29 #microcms_meetup

Slide 30

Slide 30 text

目次 30 ● そもそも OpenAPI とは? ● microCMS の OpenAPI 連携機能の紹介 ● microCMS の API の未来について #microcms_meetup

Slide 31

Slide 31 text

API v2 を開発中 ● よりキレイな API に ● OpenAPI と自動バリデーションを活用してより堅牢な API に ● OpenAPI 連携機能は API v2 から提供される予定 31 #microcms_meetup

Slide 32

Slide 32 text

API v2 のリリース スケジュール (予定) 32 #microcms_meetup

Slide 33

Slide 33 text

マネジメント API を強化 ● コンテンツ API 同様に RESTful な API として提供予定 ● 管理画面で出来ることはなんでも API でも出来るように 33 #microcms_meetup

Slide 34

Slide 34 text

マネジメント API として提供されるもの ● 例) メディアの検索、アップロード、削除 ● 例) API スキーマの CRUD ○ OpenAPI 以外のアプローチでコード生成 ○ 逆に TypeScript から API スキーマ生成 ● 例) レビューの CRUD ○ 放置されたレビューを Slack でリマインド 34 #microcms_meetup

Slide 35

Slide 35 text

35 #microcms_meetup

Slide 36

Slide 36 text

ご清聴ありがとうございました 36 https://microcms.io Copyright © microCMS All rights reserved. #microcms_meetup