投稿日
OpenAPI で REST API の定義を作成してみた(Stoplight Studio 使用)
もくじ
付録
▼定義対象API(再掲)
| API 名 | HTTP
メソッド |
エンドポイント | 説明 | リクエスト | レスポンス |
|---|---|---|---|---|---|
| アカウント一覧取得 API | GET | /accounts | アカウント情報を全て取得する | - | アカウント情報の一覧 |
| アカウント登録 API | POST | /accounts | アカウント情報を新規登録する | アカウント情報 | 登録したアカウント情報 |
| アカウント更新 API | PUT | /accounts/{accountId} | アカウント情報を更新する | アカウント情報 | 更新したアカウント情報 |
| アカウント削除 API | DELETE | /accounts/{accountId} | アカウント情報を削除する | - | - |
openapi: 3.0.0
info:
title: Sample APIs
version: 1.0.0
servers:
- url: http://localhost:8080
paths:
/accounts:
get:
summary: アカウント一覧取得API
tags:
- accounts
operationId: get-accounts
description: アカウント情報を全て取得する
responses:
"200":
description: OK
content:
application/json:
schema:
type: object
properties:
accountList:
type: array
items:
$ref: "#/components/schemas/ResAccounts"
required:
- accountList
post:
summary: アカウント登録API
tags:
- accounts
operationId: post-accounts
description: アカウント情報を新規登録する
requestBody:
content:
application/json:
schema:
type: object
properties:
accountId:
type: string
name:
type: string
email:
type: string
address:
type: string
required:
- accountId
- name
- email
responses:
"201":
description: Created
content:
application/json:
schema:
$ref: "#/components/schemas/ResAccounts"
"/accounts/{accountId}":
parameters:
- schema:
type: string
name: accountId
in: path
required: true
put:
summary: アカウント更新API
tags:
- accounts
operationId: put-accounts-accountId
description: アカウント情報を更新する
requestBody:
content:
application/json:
schema:
type: object
properties:
name:
type: string
mail:
type: string
address:
type: string
version:
type: integer
required:
- name
- mail
- version
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: "#/components/schemas/ResAccounts"
delete:
summary: アカウント削除API
tags:
- accounts
operationId: delete-accounts-accountId
description: アカウント情報を削除する
responses:
"200":
description: OK
components:
schemas:
ResAccounts:
title: ResAccounts
type: object
properties:
accountId:
type: string
name:
type: string
email:
type: string
address:
type: string
version:
type: integer
required:
- accountId
- name
- email
- version
tags:
- name: accounts
