Slide 17
Slide 17 text
16
バックエンド | utoipaでOpenAPI記述
#[utoipa::path(
post,
path = "/internal/coupon-settings",
request_body(
content = CouponSetting,
content_type = "application/json",
),
responses(/* ... */),
)]
pub async fn create_coupon_setting(
State(state): State,
ConformantJson(new_coupon_setting): ConformantJson,
) -> Result {
// ...
}
extractorであるConformantJsonで
CouponSettingを取り出すとき、
そのJSONスキーマでバリデーションされ、
エラーなら自動で400 Invalid Requestを返す
utoipaのマクロ (utopia::path , utoipa::ToSchema な
ど)でPOST /internal/coupon-settings の
スキーマを定義する