🔰
Open API 入門 Part1 | 基本的な書き方
最近さまざまなところで、OpenAPIを使っているのを見かけるようになったので
そもそもOpenAPIってなんだっけ?
これが担っている役割やメリットはなんだろう?
を深掘りしていきます!
OpenAPIとは
HTTP API定義の仕様を標準化しているもの.
参考
メリット
- API仕様の標準化なので、バックエンド・フロントエンド間の共通認識がコードによって定義できる
- 仕様書からAPI通信部分のクライアントコードを自動生成してくれるライブラリがある
- モックサーバーも生成することができる
コードの読み方
参考
仕様書はJSONまたは、YAML形式で書きます.
YAML形式で書かれることとが多いので、YAMLで書きます.
(YAMLの方がファイルサイズが削減される・コメントを書くことができる・ダブルクオートで囲む必要がない)
openapi.yaml
openapi: 3.1.0
info:
title: MyAPI
version: 0.0.1
paths: {}
これが最小構成になります.
OpenAPIオブジェクトとして下記の3つが必要です.
- openapi: OpenAPIのバージョン
- info: APIに関する情報
- paths: APIエンドポイントに関する情報
そして、pathsの中身にリクエストやレスポンスの情報を書いていくことになります.
openapi.yaml
openapi: 3.1.0
info:
title: MyAPI
version: 0.0.1
paths:
/posts:
get:
responses:
"200":
description: post response
content:
application/json:
schema:
type: array
items:
type: object
properties:
text:
type: string
imgSrc:
type: string
"400":
schema:
type: object
properties:
message:
type: string
レスポンスの基本的な書き方を追加してみました.
書き方の手順としては
- pathsの下は、APIエンドポイントごとに区切る
- HTTPメソッドごとに区切る
- レスポンスの種類ごとに区切る
- 返すコンテンツのスキーマを書く
の順番で記述します.
schemaの構造
上記の200レスポンスは
[
{
"text": "hogehoge",
"imgSrc": "https://example.com/hoghoge.img"
}
]
のようなJSONを返す構造になっている.
扱えるデータ型 (type)
- String
- Number
- Boolean
- Array
- Object
- null
まとめ
今回は、OpenAPIの基本的な書き方を中心に学習してみました.
次回は、schema定義の部分をさらに綺麗に書く方法を紹介します!お楽しみに!!
Discussion