연습 - 함수를 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 스프링 정리 작업을 모두 완료한 후 프로젝트를 다시 시작해야 합니다.
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 요청 메서드만 다릅니다. 세 개의 URL을 하나로 묶었지만 여전히 엔드포인트는 세 개입니다. 마법 같지 않나요?