NGワード API
生成テキストの検査に使用するNGワードを管理するエンドポイントです。 記事生成・ブログ生成・リライトの各 Lambda が起動時に全件を読み込み、 Aho-Corasick オートマトンを構築して生成結果を検査します。
POST /v1/ng_words
概要
NGワードを新規登録します。
リクエストとレスポンス
ヘッダー
リクエストヘッダー
Content-Type: application/json
レスポンスヘッダー
Content-Type: application/json
URI
リクエストボディ
| フィールド | データ型 | 必須 | 備考 |
|---|---|---|---|
| name | string | ◯ |
レスポンス
201 Created
例外処理
| 説明 | ステータスコード | ステータス名 |
|---|---|---|
| リクエストボディが不正 | 422 | Unprocessable Entity |
| 内部サーバーエラー | 500 | Internal Server Error |
処理フロー
- リクエストを受信する
- リクエストボディをバリデーションする
- NGワードを作成して保存する
- 作成したNGワードを返す
flowchart TD
Start([POST /v1/ng_words]) --> Validate[リクエストバリデーション]
Validate -->|invalid| E422[422 Unprocessable Entity]
Validate -->|valid| Save[DBに保存]
Save --> Success[201 Created]
GET /v1/ng_words
概要
NGワードの一覧を取得します。
リクエストとレスポンス
URI
クエリパラメータ
| パラメータ | データ型 | 必須 | 備考 |
|---|---|---|---|
| page | number | 取得するページ番号。デフォルト: 1 |
|
| size | number | 1ページあたりの件数。デフォルト: 10 |
|
| order | enum | asc / desc(updated_at 基準)。デフォルト: desc |
リクエストボディ
なし
レスポンス
200 OK
{
"list": [
{
"id": "string",
"name": "string",
"created_at": 1234567890000,
"updated_at": 1234567890000
}
],
"current_page": 1,
"total_count": 10
}
例外処理
| 説明 | ステータスコード | ステータス名 |
|---|---|---|
| 内部サーバーエラー | 500 | Internal Server Error |
処理フロー
- リクエストを受信する
- NGワード一覧を取得する
- 一覧を返す
flowchart TD
Start([GET /v1/ng_words]) --> Fetch[DBからNGワード一覧取得]
Fetch --> Success[200 OK]
GET /v1/ng_words/{ng_word_id}
概要
指定したNGワードを取得します。
リクエストとレスポンス
URI
| パスパラメータ | データ型 | 備考 |
|---|---|---|
| ng_word_id | string | _id |
リクエストボディ
なし
レスポンス
200 OK
例外処理
| 説明 | ステータスコード | ステータス名 |
|---|---|---|
| NGワードが存在しない | 404 | Not Found |
| 内部サーバーエラー | 500 | Internal Server Error |
処理フロー
- リクエストを受信する
ng_word_idでNGワードを検索する- NGワードを返す
flowchart TD
Start([GET /v1/ng_words/ng_word_id]) --> Fetch[DBから検索]
Fetch -->|存在しない| E404[404 Not Found]
Fetch -->|存在する| Success[200 OK]
PUT /v1/ng_words/{ng_word_id}
概要
指定したNGワードを更新します。
リクエストとレスポンス
ヘッダー
リクエストヘッダー
Content-Type: application/json
レスポンスヘッダー
Content-Type: application/json
URI
| パスパラメータ | データ型 | 備考 |
|---|---|---|
| ng_word_id | string | _id |
リクエストボディ
| フィールド | データ型 | 必須 | 備考 |
|---|---|---|---|
| name | string | ◯ |
レスポンス
200 OK
例外処理
| 説明 | ステータスコード | ステータス名 |
|---|---|---|
| リクエストボディが不正 | 422 | Unprocessable Entity |
| NGワードが存在しない | 404 | Not Found |
| 内部サーバーエラー | 500 | Internal Server Error |
処理フロー
- リクエストを受信する
- リクエストボディをバリデーションする
- NGワードの存在確認をする
- NGワードを更新して保存する
- 更新したNGワードを返す
flowchart TD
Start([PUT /v1/ng_words/ng_word_id]) --> Validate[リクエストバリデーション]
Validate -->|invalid| E422[422 Unprocessable Entity]
Validate -->|valid| Fetch[DBから検索]
Fetch -->|存在しない| E404[404 Not Found]
Fetch -->|存在する| Save[DBに保存]
Save --> Success[200 OK]
DELETE /v1/ng_words/{ng_word_id}
概要
指定したNGワードを論理削除します。
リクエストとレスポンス
URI
| パスパラメータ | データ型 | 備考 |
|---|---|---|
| ng_word_id | string | _id |
リクエストボディ
なし
レスポンス
204 No Content
例外処理
| 説明 | ステータスコード | ステータス名 |
|---|---|---|
| NGワードが存在しない | 404 | Not Found |
| 内部サーバーエラー | 500 | Internal Server Error |
処理フロー
- リクエストを受信する
- NGワードの存在確認をする
deleted_atに現在時刻を設定して保存する(論理削除)- 204 を返す
flowchart TD
Start([DELETE /v1/ng_words/ng_word_id]) --> Fetch[DBから検索]
Fetch -->|存在しない| E404[404 Not Found]
Fetch -->|存在する| Delete[deleted_at を設定]
Delete --> Success[204 No Content]