1.天気(JSON)
{
"openapi": "3.1.0"、
"info": {
"title": "天気データの取得", "description": "ある場所の現在の天気データを取得する。
「description": "ある場所の現在の気象データを取得する。", "version": "v1.0.0", "description": "ある場所の現在の気象データを取得する。
「バージョン": "v1.0.0".
}, "servers": ["servers" : ["現在地の気象データを取得します。
"servers": ["サーバー
{
"url": "https://weather.example.com"
}
],
「パス": {
"/location": {
"get": {
"operationId": "GetCurrentWeather"、"parameters": [ ]。
「パラメータ": [
{
"name": "location", "in": "query", "parameters": [ {
name": "location", "in": "query", "parameters": [ { "in": "query", "description": "都市と
"schema": {
「タイプ": "文字列"
}
}
], "deprecated": false
「非推奨": false
}
}
},
"components": {
"スキーマ": {}。
}
}
このコードは、気象データを取得するためのAPIを記述したOpenAPI仕様のJSONファイルである。一言で言えば、このAPIによって、ユーザーは特定の場所の気象データを照会することができる。
"openapi": "3.1.0"
これはOpenAPI仕様のバージョンが3.1.0であることを示す。"情報"
: このセクションでは、APIのタイトル、説明、バージョンなどの基本情報を提供します。「サーバー
このセクションでは、APIのサーバーURLを列挙する。パス
このセクションでは、APIのパスとオペレーションを定義する。この例では、パスが/ロケーション
これは、特定の場所の天気を取得するのに使われる。この操作には場所
クエリーパラメーターは必須で、文字列型である。「コンポーネント
このセクションはAPIで使用されるパターンを定義するために使用されるが、この例では空である。
OpenAPI仕様ではパラメーター
は、API操作の入力パラメータを定義する配列である。パラメーター
という名前のファイルを定義する。場所
クエリ・パラメータは必須で、文字列型である。各パラメータは、以下のプロパティを含むオブジェクトです:
名前
パラメータ名。"で"
パラメータの位置。これは「クエリー
,「ヘッダー
,パス
もしかしたら「クッキー
."説明"
パラメータの説明"必須"
もし真の
このパラメータは"スキーマ"
パラメータのデータ型。
パラメータの位置に注目し、4つのケースを以下に示す:
- ヘッダー・パラメーターを使用して、リクエスト・ヘッダーにAPIキーを渡します。
- path パラメータを使用して、URL パスで取得するオブジェクトの ID を指定します。
- ユーザーのセッションIDをCookieで渡すためのCookieパラメータ。
- URLに付加されるクエリーパラメーターは、通常、情報のフィルタリングに使われる。
カスタムツールインターフェースを作成する:
テストツールのインターフェースインターフェース:
2.ペットショップ(YAML)
# https://github.com/OAI/OpenAPI-Specification/blob/main/examples/v3.0/petstore.yaml より引用
openapi:「3.0.0」。
情報
バージョン: 1.0.0
タイトル: Swagger Petstore
ライセンス: name: MIT
名前: MIT
サーバー
- url: https://petstore.swagger.io/v1
パス
/pets.
を取得します。
summary: 全てのペットをリストアップする
operationId: listPets
タグ: ペット
- ペット
パラメータ: name: limit
- 名前: limit
in: クエリ
説明: 一度に返すアイテムの数 (最大 100)
必須: false
schema: name: limit in: クエリの説明: 一度に返すアイテムの数 (最大 100)
タイプ: integer
最大値: 100
フォーマット: int32
レスポンスを返します。
'200'.
説明: ペットのページングされた配列
説明: ペットのページ分割された配列
x-next
説明: 回答の次のページへのリンク
schema: x-next: 説明: 回答の次のページへのリンク
x-next: 説明: レスポンスの次のページへのリンク schema: type: string
content: application/json.
application/json.
schema: $ref: "#/components/schemas/Pets
$ref: "#/components/schemas/Pets" を参照。
デフォルト: $ref: "#/components/schemas/Pets
説明: 予期せぬエラー
説明: 予期せぬエラー
#/components/schemas/Pets" default: description: 予期せぬエラー content: application/json.
schema.
$ref: "#/components/schemas/Error" を参照。
を投稿する。
summary: ペットを作成する
operationId: createPets
タグ: ペット
- ペット
レスポンス。
'201'.
説明: Null レスポンス
デフォルト: '201': 説明: Null レスポンス
説明: 予期せぬエラー
デフォルト: 説明: 予期せぬエラー
application/json.
schema.
$ref: "#/components/schemas/Error" を参照。
/pets/{petId}.
を取得します。
summary: 特定のペットの情報
operationId: showPetById
tags: pets/{petId}: get: summary: 特定のペットの情報
- ペット
パラメータ: name: petId
- 名前: petId
in: パス
必須: true
説明: 取得するペットの ID
schema: petId in: path required: true description: 取得するペットの ID
タイプ: 文字列
レスポンス。
'200'.
説明: 有効なリクエストに対する期待される応答
説明: 有効なリクエストに対する期待される応答
application/json: '200': 説明: 有効なリクエストに対する期待されるレスポンス content: application/json.
スキーマ。
$ref: "#/components/schemas/Pet" を参照。
デフォルト: $ref: "#/components/schemas/Pet
説明: 予期せぬエラー
説明: 予期せぬエラー
#/components/schemas/Pet" default: description: 予期せぬエラー content: application/json.
schema.
$ref: "#/components/schemas/Error"
schema: $ref: "#/components/schemas/Error
$ref: "#/components/schemas/Error" コンポーネント。
ペット
schema: schemas: Pet.
必須: id
- id
- 名前
プロパティ
id: type: integer
型: integer
フォーマット: int64
name: id: type: integer format: int64
型: 文字列
タグ
型: 文字列
ペット
タイプ: 配列
maxItems: 100
items: $ref: "#/components/schemas/Pet
$ref: "#/components/schemas/ペット"
エラー:タイプ:オブジェクト
$ref: "#/components/schemas/Pet" エラー。
必須:コード
- #/components/schemas/Pet" Error: type: object required.
- メッセージ
type: object required: code メッセージ
type: integer
タイプ: integer
フォーマット: int32
message: type: string
型: 文字列
pet.yaml
はOpenAPI仕様ファイルで、"Swagger Petstore "と呼ばれるAPIのインターフェイスを記述・定義している。このファイルは、設定ファイルを記述するための人間が読めるデータシリアライゼーション標準であるYAMLフォーマットを使用しています。このファイルは、開発者が "Swagger Petstore "APIと対話する方法を知るためのAPIインターフェースの明確な定義を提供します。ファイルの主な部分は以下の通りです:
オープンエーピー
このフィールドは、使用されるOpenAPI仕様のバージョンを指定する。インフォメーション
: このセクションでは、バージョン、タイトル、ライセンスなど、APIに関する基本的な情報を提供します。サーバー
このセクションでは、APIのサーバーURLを定義する。小道
このセクションでは、APIのすべてのパスと操作を定義する。例えば/ペット
パスには2つの操作がある:得る
歌で応えるポスト
.得る
操作は、すべてのペットをリストアップするために使用されます。ポスト
操作は新しいペットを作るために使われる。それぞれの操作には、パラメータやレスポンスなどの詳細があります。コンポーネント
この節では、次のような再利用可能なスキーマを定義する。小道
セクションで引用されている。例えばペット
そしてペット
歌で応えるエラー
モードだ。
上記のYAMLファイルをJSON形式に変換する:
{
"openapi": "3.0.0"、
"info": {
「バージョン": "1.0.0", "タイトル": "Swagger Petstore", {
"licence": {
"name": "MIT"
}
},
「サーバー": [
{
"url": "https://petstore.swagger.io/v1"
}
],
「パス": {
"/pets": {
"get": {
"summary": "list all pets", "operationId": "listPets"、
"operationId": "listPets"、
「パラメータ": [
{
"name": "limit", "in": "query", "tags": ["pets"], "parameters": [ { {
"in": "query", "description": "一度に返すアイテムの数
"description": "一度に返すアイテムの数(最大100)", "required": false, "tags": [ {
"schema": {
"type": "integer", "maximum": 100, "required": false, "schema": {
"format": "int32"
}
}
], "responses": { 以下のとおりである。
「レスポンス": {
"200": {
"description": "ペットのページングされた配列"、
「ヘッダー": {
"x-next": {
"description": "レスポンスの次のページへのリンク", "schema": { "x-next": { "x-next":{。
"schema": {
"type": "string"
}
}, "content": { "回答の次のページへのリンク", "schema": { "type": "string" } }。
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Pets"
}
}
}
},
"default": {
"説明": "予期せぬエラー", "内容": {。
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
},
"post": {
"summary": "Create a pet"、
"operationId": "createPets"、
"tags": ["pets"], "responses": {
「レスポンス": {
"201": {
"description": "Null response"
},
「デフォルト": {
"description": "予期せぬエラー", "content": {
「コンテンツ": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
}
}
},.
"/pets/{petId}": { 以下のとおりである。
"get": {
"operationId": "showPetById"、
"tags": ["pets"], "parameters": ["pets"], "operationId": "showPetById"、
「パラメータ": [
{
"name": "petId", "in": "path", "tags": ["pets"], "parameters": [ {
"in": "path", "required": true, [ { "name": "petId"、
name": "petId", "required": true, "description": "取得するペットのID
"description": "取得するペットのid", "schema": { { { "name": "petId", "required": true, "description": "取得するペットのid。
"schema": {
"type": "string"
}
}
], "responses": { "responses": { "type": "string" } }.
「レスポンス": {
"200": {
"description": "有効なリクエストに対する期待されるレスポンス", "content": { "200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Pet"
}
}
}
},
"default": {
"説明": "予期せぬエラー", "内容": {。
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
}
}
},
「コンポーネント": {
"スキーマ": {
「ペット": {
"タイプ": "オブジェクト", "必須": ["id", "name"], {
"required": ["id", "name"], "properties": { "properties": { "id", "name", "name", "name
"properties": {
「id": {
"type": "integer", "format": "int64".
"format": "int64"
},
「name": {
"type": "string"
},
「タグ": {
"タイプ": "文字列"
}
}
},
「ペット": {
"type": "array", "maxItems": 100, "array
「maxItems": 100, "items": { "type": "array"、
「項目": {
"$ref": "#/components/schemas/Pet"
}
},
「エラー": {
"properties": {
「code": {
「type": "integer", "format": "int".
"format": "int32"
},
「メッセージ": {
"type": "string"
}
}
}
}
}
}
3.空白のテンプレート
{
"openapi": "3.1.0"、
"info": {
"title": "無題", "description": "あなたのOpenAPI仕様", { "openapi": "3.0", "info": {
「バージョン": "v1.0.0"
}, "servers": [
「サーバー": [
{
"url": ""
}
],
"paths": {}、
「コンポーネント": {
"スキーマ": {}。
}
}
注:JSON形式の方がより直感的に見えるようだ。
書誌
[1] OpenAPI仕様:https://swagger.io/specification/