연습 - 함수를 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 스프링 정리 작업을 모두 완료한 후 프로젝트를 다시 시작해야 합니다.

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 요청 메서드만 다릅니다. 세 개의 URL을 하나로 묶었지만 여전히 엔드포인트는 세 개입니다. 마법 같지 않나요?