コンテンツにスキップ

NGワード API

生成テキストの検査に使用するNGワードを管理するエンドポイントです。 記事生成・ブログ生成・リライトの各 Lambda が起動時に全件を読み込み、 Aho-Corasick オートマトンを構築して生成結果を検査します。


POST /v1/ng_words

概要

NGワードを新規登録します。

リクエストとレスポンス

ヘッダー

リクエストヘッダー

  • Content-Type: application/json

レスポンスヘッダー

  • Content-Type: application/json

URI

POST /v1/ng_words

リクエストボディ

{
  "name": "string"
}
フィールド データ型 必須 備考
name string ◯

レスポンス

201 Created

{
  "id": "string",
  "name": "string",
  "created_at": 1234567890000,
  "updated_at": 1234567890000
}

例外処理

説明 ステータスコード ステータス名
リクエストボディが不正 422 Unprocessable Entity
内部サーバーエラー 500 Internal Server Error

処理フロー

  1. リクエストを受信する
  2. リクエストボディをバリデーションする
  3. NGワードを作成して保存する
  4. 作成した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

GET /v1/ng_words

クエリパラメータ

パラメータ データ型 必須 備考
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

処理フロー

  1. リクエストを受信する
  2. NGワード一覧を取得する
  3. 一覧を返す
flowchart TD
    Start([GET /v1/ng_words]) --> Fetch[DBからNGワード一覧取得]
    Fetch --> Success[200 OK]

GET /v1/ng_words/{ng_word_id}

概要

指定したNGワードを取得します。

リクエストとレスポンス

URI

GET /v1/ng_words/{ng_word_id}
パスパラメータ データ型 備考
ng_word_id string _id

リクエストボディ

なし

レスポンス

200 OK

{
  "id": "string",
  "name": "string",
  "created_at": 1234567890000,
  "updated_at": 1234567890000
}

例外処理

説明 ステータスコード ステータス名
NGワードが存在しない 404 Not Found
内部サーバーエラー 500 Internal Server Error

処理フロー

  1. リクエストを受信する
  2. ng_word_id でNGワードを検索する
  3. 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

PUT /v1/ng_words/{ng_word_id}
パスパラメータ データ型 備考
ng_word_id string _id

リクエストボディ

{
  "name": "string"
}
フィールド データ型 必須 備考
name string ◯

レスポンス

200 OK

{
  "id": "string",
  "name": "string",
  "created_at": 1234567890000,
  "updated_at": 1234567890000
}

例外処理

説明 ステータスコード ステータス名
リクエストボディが不正 422 Unprocessable Entity
NGワードが存在しない 404 Not Found
内部サーバーエラー 500 Internal Server Error

処理フロー

  1. リクエストを受信する
  2. リクエストボディをバリデーションする
  3. NGワードの存在確認をする
  4. NGワードを更新して保存する
  5. 更新した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

DELETE /v1/ng_words/{ng_word_id}
パスパラメータ データ型 備考
ng_word_id string _id

リクエストボディ

なし

レスポンス

204 No Content

例外処理

説明 ステータスコード ステータス名
NGワードが存在しない 404 Not Found
内部サーバーエラー 500 Internal Server Error

処理フロー

  1. リクエストを受信する
  2. NGワードの存在確認をする
  3. deleted_at に現在時刻を設定して保存する(論理削除)
  4. 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]