Skip to content

Commit 08f30b5

Browse files
authored
Feature/openapispec (#62)
ファイルフォーマットを切り出し
1 parent 6c9af81 commit 08f30b5

File tree

2 files changed

+81
-60
lines changed

2 files changed

+81
-60
lines changed

documents/forOpenAPISpecification/OpenAPI_Specification_2.0.md

Lines changed: 5 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -17,72 +17,17 @@ meta:
1717

1818
[OpenAPI Specification 2.0(Swagger, OAS2)](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/2.0.md)定義についてのコーディング規約をまとめます。より新しいバージョンとして OAS 3.0.3 規約(作成中)がありますので、ご注意ください。
1919

20-
## 前提条件
20+
## 適用箇所
2121

22-
[Web API設計の前提条件](prerequisite.md)を参照ください
22+
本規約は以下の[前提条件](prerequisite.md)で作られたものである
2323

24-
# Web API 自体の設計について
24+
## Web API 自体の設計について
2525

2626
[API 設計標準](API_Design.md) に準じる。
2727

28-
# 全体規約
28+
## ファイルフォーマット
2929

30-
ファイル全体に関わることとや、YAML 記法についての方針をまとめる。
31-
32-
- YAML、JSON のいずれかのフォーマットで記載できるが、 **YAML で記載** すること
33-
- YAML は視覚的に見やすいとされ、レビューや差分管理が比較的行いやすいと考えられるため
34-
- ファイルの拡張子は `yaml` とする。通常ファイル名は `swagger.yaml` を推奨する
35-
- もし、複数の Swagger 定義を管理するため区別したい場合は `${service}_swagger.yaml` とする
36-
- `${service}` にはサービス名を指定する
37-
- [YAML v1.2](https://yaml.org/spec/1.2.2/#61-indentation-spaces)を用いる
38-
- ファイルの最終行には空行を入れる
39-
- 文字コードは UTF-8 とする
40-
- タブは半角スペース 2 つとする
41-
- クォートの扱い(シングルクォート `'` や、 ダブルクォート `"` は指定しない)
42-
43-
- 可読性を上げるために、できる限りクォートは利用しない。利用する場合はダブルクォートを利用する
44-
45-
```yaml
46-
# OK
47-
description: 何かしらの説明
48-
49-
# NG(クォートでのラップは不要)
50-
description: '何かしらの説明'
51-
description: "何かしらの説明"
52-
```
53-
54-
- 以下の場合は必須で利用する
55-
- 文字列として認識させる必要のある数字("0123")
56-
- 60 進数と認識させたくない場合("12:34")
57-
- Bool として認識させたくない("true", "false", "yes", "no", "y", "n", "on", "off")
58-
- `#` で始まる文字列(`#` はコメントを示す記号のためである。例: `#/definitions/Users`)
59-
60-
- 複数項目を指定する場合は、 **Flow style(配列スキーム)** を用いることを推奨する
61-
62-
```yaml
63-
# OK(推奨: 配列リテラル構文)
64-
required: [user_id, user_name, account_type, register_at]
65-
66-
# NG(非推奨: リスト構文)
67-
required:
68-
- user_id
69-
- user_name
70-
- account_type
71-
- register_at
72-
```
73-
74-
- YAML は項目定義がネストすることで縦長な定義になりやすい。情報密度を上げるために配列リテラルを推奨する
75-
76-
- 改行を含む場合は、パイプ(ブロックスカラー) `|` を用いる
77-
78-
```yaml
79-
description: |
80-
説明文1
81-
説明文2
82-
- 箇条書き1
83-
- 箇条書き2
84-
- 箇条書き3
85-
```
30+
[ファイルフォーマット規約](yaml_standards.md)に準じる。
8631

8732
# 要素規約
8833

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
# ファイルフォーマット規約
2+
3+
## フォーマット
4+
5+
OpenAPI ドキュメントは JSON 形式、YAML 形式いずれかのフォーマットで記載できるが **YAML 形式** を利用する。
6+
7+
理由として、JSON と比較して YAML は視覚的に見やすく、レビューや差分管理が行いやすいためである。
8+
9+
## ファイル名
10+
11+
ファイルの拡張子は `yaml` とする。通常ファイル名は `api.yaml``swagger.yaml`(v2の場合) を推奨する。
12+
13+
もし、複数の Swagger 定義を管理するため区別したい場合は `${service}_api.yaml` とする。
14+
15+
`${service}` にはサービス名を指定する
16+
17+
## YAMLバージョン
18+
19+
[YAML v1.2](https://yaml.org/spec/1.2.2/#61-indentation-spaces)を用いる。
20+
21+
## ファイルレイアウト
22+
23+
- ファイルの最終行には空行を入れる
24+
- 文字コードは UTF-8 とする
25+
- タブは半角スペース 2 つとする
26+
27+
## クォート
28+
29+
クォートは可読性を上げるために、できる限り利用しない。利用する場合はダブルクォートを利用する。
30+
31+
```yaml
32+
# OK
33+
description: 何かしらの説明
34+
35+
# NG(クォートでのラップは不要)
36+
description: '何かしらの説明'
37+
description: "何かしらの説明"
38+
```
39+
40+
以下の場合は必須で利用する
41+
42+
- 文字列として認識させる必要のある数字("0123")
43+
- 60 進数と認識させたくない場合("12:34")
44+
- Bool として認識させたくない("true", "false", "yes", "no", "y", "n", "on", "off")
45+
- `#` で始まる文字列(`#` はコメントを示す記号のためである。例: `#/definitions/Users`)
46+
47+
## YAML配列スタイル
48+
49+
- 複数項目を指定する場合は、 **Flow style(配列スキーム)** を用いることを推奨する
50+
51+
```yaml
52+
# OK(推奨: 配列リテラル構文)
53+
required: [user_id, user_name, account_type, register_at]
54+
55+
# NG(非推奨: リスト構文)
56+
required:
57+
- user_id
58+
- user_name
59+
- account_type
60+
- register_at
61+
```
62+
63+
- YAML は項目定義がネストすることで縦長な定義になりやすい。情報密度を上げるために配列リテラルを推奨する
64+
65+
## 改行の表現
66+
67+
改行を含む場合は、パイプ(ブロックスカラー) `|` を用いる
68+
69+
```yaml
70+
description: |
71+
説明文1
72+
説明文2
73+
- 箇条書き1
74+
- 箇条書き2
75+
- 箇条書き3
76+
```

0 commit comments

Comments
 (0)