# API設計書サンプル
## ファイル登録API
### 概要
ファイルをxxxxxする
### パス
`/api/v1/register`
### メソッド
- POST
- JSON (Req/Res)
### パラメータ
|パラメータ名|型|内容|
|---|---|---|
|id|string|xxx ID|
|files|array|ファイルのオブジェクト|
#### ファイルオブジェクト
|パラメータ名|型|内容|
|---|---|---|
|filename|string|ファイル名|
|data|string|base64エンコードしたファイルの実体|
#### リクエストサンプル
```JSON
{
"id": "1234567890abcedf"
"files": [
{
"filename": "sample.txt",
"data": "aGVsbG8gd29ybGQ="
},
{
"filename": "test.txt",
"data": "44GT44KT44Gr44Gh44Gv"
}
]
}
```
### レスポンス
#### 成功時
- ステータスコード: 200
#### レスポンスオブジェクト
|パラメータ名|型|内容|
|---|---|---|
|code|number|コード|
|message|string|メッセージ|
#### レスポンスサンプル
```JSON
{
"code": 0,
"message": "OK"
}
```
#### 失敗時
- [[エラーレスポンス]] を参照
#### レスポンスオブジェクト
|パラメータ名|型|内容|
|---|---|---|
|code|number|コード|
|message|string|メッセージ|
※ エラーレスポンスの体系は別途検討
#### レスポンスサンプル
```JSON
{
"code": 101,
"message": "invalid parameter error"
}
```
## 監査API
### 概要
- xxxxを監査をする
### パス
`/api/v1/audit`
### メソッド
- POST
- JSON (req/res)
### パラメータ
|パラメータ名|型|内容|
|---|---|---|
|id|string|xxx ID|
|files|array|ファイルのオブジェクト|
#### ファイルオブジェクト
|パラメータ名|型|内容|
|---|---|---|
|filename|string|ファイル名|
|data|string|base64エンコードしたファイルの実体|
#### リクエストサンプル
```JSON
{
"id": "1234567890abcdef",
"files": [
{
"filename": "sample.txt",
"data": "aGVsbG8gd29ybGQ="
},
{
"filename": "test.txt",
"data": "44GT44KT44Gr44Gh44Gv"
}
],
}
```
### レスポンス
#### 監査実行完了
- ステータスコード: 200
#### レスポンスオブジェクト
|パラメータ名|型|内容|
|---|---|---|
|isValid|boolean|監査結果: true...問題なし, false...問題あり|
|files|array|監査結果オブジェクト|
#### 監査結果
|パラメータ名|型|内容|
|---|---|---|
|filename|string|ファイル名|
|isValid|boolean|監査結果: true...問題なし, false...問題あり|
#### レスポンスサンプル
```JSON
{
"isValid": false,
"files": [
{
"filename": "sample.txt",
"isValid": true
},
{
"filename": "test.txt",
"isValid": false
},
]
}
```
#### 監査実行失敗
- [[エラーレスポンス]] を参照
#### レスポンスオブジェクト
|パラメータ名|型|内容|
|---|---|---|
|code|number|エラーコード|
|message|string|エラーメッセージ|
※ エラーレスポンスの体系は別途検討
#### レスポンスサンプル
```JSON
{
"code": 101,
"message": "invalid parameter error"
}
```