メインコンテンツまでスキップ
バージョン: 0.13.0 (Previous)

🛣️ アトリビューションルート

アトリビューションルートはExpressミドルウェアではなくSDKコンポーザーです。公開された読み取りには認証が不要ですが、ミューテーションには認証済み管理者が必要です。

目次

ルートメソッド / プロトコルパススキーマバリデーター成功ステータス
createAttributeRoutePOST / HTTP/attributescreateAttributesSchemaisAuthenticated()checkIdentityType(['admin'])201
findAttributesRouteGET / HTTP/attributesfindAttributesSchemaなし200
getAttributeRouteGET / HTTP/attributes/:attributeIdgetAttributeSchemaなし200
updateAttributeRoutePATCH / HTTP/attributes/:attributeIdupdateAttributesSchemaisAuthenticated()checkIdentityType(['admin'])200
deleteAttributeRouteDELETE / HTTP/attributes/:attributeIddeleteAttributeSchemaisAuthenticated()checkIdentityType(['admin'])204

詳細

createAttributeRoute

実装

エンドポイント: POST /attributes

アクセス: 認証済み管理者: isAuthenticated() かつ checkIdentityType(['admin'])

リクエスト: 必須JSON作成ボディ

パイプライン: createAttributeGroupgetAttributeGroupByIdcreateAttributeGroupTerminator

成功: _id を除かれた作成されたグループを 201 で返します。

失敗: 不足/空のボディまたは不足な挿入結果は 400;失敗したポスト作成ルックアップ/ターミネーターは 404;スローされた永続化作業は 500 です。認証と管理者検証が最初に実行されます。

完全なソースを表示
export const createAttributeRoute = withRoute({
handler: compose(
withLogging(createAttributeGroup),
flatMapAsync(withLogging(getAttributeGroupById)),
lift(withLogging(createAttributeGroupTerminator))
),
method: 'POST',
path: '/attributes',
validators: [isAuthenticated(), checkIdentityType(['admin'])],
});

findAttributesRoute

実装

エンドポイント: GET /attributes

アクセス: 公開。

リクエスト: オプションのnameおよびページネーションクエリ

パイプライン: findAttributeGroups through withPaginationnormalizeAttributesListTerminator

成功: ペネーションがページネーション結果を提供する場合、正規化されたグループ、または { data, metadata: { pagination } }200 で返します。

失敗: クエリ/データベースの失敗または予期せぬリスト結果の形状は 500 です。

完全なソースを表示
export const findAttributesRoute = withRoute({
handler: compose(
withPagination(withLogging(findAttributeGroups)),
lift(withLogging(normalizeAttributesListTerminator))
),
method: 'GET',
path: '/attributes',
validators: [],
});

getAttributeRoute

実装

エンドポイント: GET /attributes/:attributeId

アクセス: 公開。

リクエスト: 必須文字列attributeId パスパラメータ。

パイプライン: getAttributeGroupByIdnormalizeAttributeGroupTerminator

成功: _id を除かれたグループを 200 で返します。

失敗: 不足なIDは 400、不足なグループは 404、スローされたクエリは 500 です。

完全なソースを表示
export const getAttributeRoute = withRoute({
handler: compose(
withLogging(getAttributeGroupById),
lift(withLogging(normalizeAttributeGroupTerminator))
),
method: 'GET',
path: '/attributes/:attributeId',
validators: [],
});

updateAttributeRoute

実装

エンドポイント: PATCH /attributes/:attributeId

アクセス: 認証済み管理者: isAuthenticated() かつ checkIdentityType(['admin'])

リクエスト: 必須path/body契約name のみがスキーマでサポートされています;ハンドラーは {} も拒否します。

パイプライン: updateAttributeGroupgetAttributeGroupByIdnormalizeAttributeGroupTerminator

成功: 再読み込みされた正規化グループを 200 で返します。

失敗: 不足なID/ボディまたは変更のない更新は 400;不足なグループは 404;スローされた更新/再読み込みは 500 です。認証と管理者検証が最初に実行されます。

完全なソースを表示
export const updateAttributeRoute = withRoute({
handler: compose(
withLogging(updateAttributeGroup),
flatMapAsync(withLogging(getAttributeGroupById)),
lift(withLogging(normalizeAttributeGroupTerminator))
),
method: 'PATCH',
path: '/attributes/:attributeId',
validators: [isAuthenticated(), checkIdentityType(['admin'])],
});

deleteAttributeRoute

実装

エンドポイント: DELETE /attributes/:attributeId

アクセス: 認証済み管理者: isAuthenticated() かつ checkIdentityType(['admin'])

リクエスト: 必須文字列attributeId パスパラメータ。

パイプライン: deleteAttributeGroupdeleteAttributeTerminator

成功: レスポンスデータなしの 204

失敗: 不足なIDは 400、一致するグループがない場合は 404、false/スローされた削除または不足なターミネーターフラグは 500 です。認証と管理者検証が最初に実行されます。

完全なソースを表示
export const deleteAttributeRoute = withRoute({
handler: compose(
withLogging(deleteAttributeGroup),
lift(withLogging(deleteAttributeTerminator))
),
method: 'DELETE',
path: '/attributes/:attributeId',
validators: [isAuthenticated(), checkIdentityType(['admin'])],
});