演習 - 関数を RESTful にする
Products Manager API は、Tailwind Traders 社の開発者であるあなたの厚意で重大なスタイル アップグレードが行われようとしているところです。 この演習では、構成ファイルを変更することで、前に作成した関数をすべて、RESTful に変換します。
GetProducts ルートを RESTful にする
Visual Studio Code で
api/src/index.ts
ファイルを開きます。GetProducts のルート定義で、
GET
値のみが含まれるように、methods
プロパティを制限します。methods: ['GET']
/api/products
の完全なルートを指定するproducts
の値を持つroute
プロパティを追加します。route: 'products',
完全なルート定義は次のとおりです。
app.http('GetProducts', { methods: ['GET'], route: 'products', // <- route: /api/products authLevel: 'anonymous', handler: GetProducts });
ファイルを保存します。
注意
ファイルを保存すると、Azure Functions プロセスでデバッガーが終了し、切断されます。 驚くことはありません。 何も切断していません。 関数の提供方法の基礎部分を変更しただけです。ですから、この REST Spring クリーニングがすべて終わったら、プロジェクトを再起動する必要があります。
CreateProduct 関数を RESTful にする
引き続き
api/src/index.ts
ファイルで、許可されるmethods
プロパティをPOST
に制限します。methods: ['POST']
/api/products
の完全なルートを指定するproducts
の値を持つroute
プロパティを追加します。route: 'products',
完全なルート定義は次のとおりです。
app.http('CreateProduct',{ methods: ['POST'], route: 'products', authLevel: 'anonymous', handler: CreateProduct });
ファイルを保存します。
UpdateProduct 関数を RESTful にする
引き続き
api/src/index.ts
ファイルで、許可されるmethods
プロパティをPUT
に制限します。methods: ['PUT'],
/api/products
の完全なルートを指定するproducts
の値を持つroute
プロパティを追加します。route: 'products',
完全なルート定義は次のとおりです。
app.http('UpdateProduct', { methods: ['PUT'], route: 'products', authLevel: 'anonymous', handler: UpdateProduct });
ファイルを保存します。
DeleteProduct 関数を RESTful にする
引き続き
api/src/index.ts
ファイルで、許可されるmethods
プロパティをDELETE
に制限します。methods: ['DELETE']
ルート パラメーターとして製品 ID を使用するようにルートを更新します。
route: 'products/{id}',
完全なルート定義は次のとおりです。
app.http('DeleteProduct', { methods: ['DELETE'], route: 'products/{id}', authLevel: 'anonymous', handler: DeleteProduct });
ファイルを保存します。
プロジェクトを開始する
F5 キーを押し、Azure Functions プロジェクトを開始します。
関数エンドポイントの URL が変わっていることに注目してください。
この優れた API をご覧ください。 とても魅力的です。 CreateProduct、UpdateProduct、DeleteProduct 関数にまったく同じルートが指定されていることがわかるでしょうか。 HTTP 要求メソッドだけが異なります。 3 つのエンドポイントを保持したまま、3 つの URL を 1 つに変換しました。 あなたはマジシャンです。