演習 - 関数を RESTful にする

完了

Products Manager API は、Tailwind Traders 社の開発者であるあなたの厚意で重大なスタイル アップグレードが行われようとしているところです。 この演習では、構成ファイルを変更することで、前に作成した関数をすべて、RESTful に変換します。

GetProducts ルートを RESTful にする

  1. Visual Studio Code で api/src/index.ts ファイルを開きます。

  2. GetProducts のルート定義で、GET 値のみが含まれるように、methods プロパティを制限します。

    methods: ['GET']
    
  3. /api/products の完全なルートを指定する products の値を持つ route プロパティを追加します。

    route: 'products',
    

    完全なルート定義は次のとおりです。

    app.http('GetProducts', {
        methods: ['GET'],
        route: 'products',       // <- route: /api/products
        authLevel: 'anonymous',
        handler: GetProducts
    });
    
  4. ファイルを保存します。

    注意

    ファイルを保存すると、Azure Functions プロセスでデバッガーが終了し、切断されます。 驚くことはありません。 何も切断していません。 関数の提供方法の基礎部分を変更しただけです。ですから、この REST Spring クリーニングがすべて終わったら、プロジェクトを再起動する必要があります。

CreateProduct 関数を RESTful にする

  1. 引き続き api/src/index.ts ファイルで、許可される methods プロパティを POST に制限します。

    methods: ['POST']
    
  2. /api/products の完全なルートを指定する products の値を持つ route プロパティを追加します。

    route: 'products',
    

    完全なルート定義は次のとおりです。

    app.http('CreateProduct',{
        methods: ['POST'],
        route: 'products',
        authLevel: 'anonymous',
        handler: CreateProduct
    });
    
  3. ファイルを保存します。

UpdateProduct 関数を RESTful にする

  1. 引き続き api/src/index.ts ファイルで、許可される methods プロパティを PUT に制限します。

    methods: ['PUT'],
    
  2. /api/products の完全なルートを指定する products の値を持つ route プロパティを追加します。

    route: 'products',
    

    完全なルート定義は次のとおりです。

    app.http('UpdateProduct', {
        methods: ['PUT'],
        route: 'products',
        authLevel: 'anonymous',
        handler: UpdateProduct
    });
    
  3. ファイルを保存します。

DeleteProduct 関数を RESTful にする

  1. 引き続き api/src/index.ts ファイルで、許可される methods プロパティを DELETE に制限します。

     methods: ['DELETE']
    
  2. ルート パラメーターとして製品 ID を使用するようにルートを更新します。

    route: 'products/{id}',
    

    完全なルート定義は次のとおりです。

    app.http('DeleteProduct', {
        methods: ['DELETE'],
        route: 'products/{id}',
        authLevel: 'anonymous',
        handler: DeleteProduct
    });
    
  3. ファイルを保存します。

プロジェクトを開始する

  1. F5 キーを押し、Azure Functions プロジェクトを開始します。

  2. 関数エンドポイントの URL が変わっていることに注目してください。

    新しいルートでエンドポイントが実行されていることを示す Visual Studio Code ターミナルのスクリーンショット。

この優れた API をご覧ください。 とても魅力的です。 CreateProduct、UpdateProduct、DeleteProduct 関数にまったく同じルートが指定されていることがわかるでしょうか。 HTTP 要求メソッドだけが異なります。 3 つのエンドポイントを保持したまま、3 つの URL を 1 つに変換しました。 あなたはマジシャンです。