2017-04-13 6 views
0

깃털에 백엔드를 만들고 있습니다. 이 API 사양의 경로 중 하나는 : 사람들 또는 UserData를 컨트롤러에이 사용자 지정 작업을 추가하는 방법은깃털에 사용자 정의 REST 동작을 추가하는 방법이 있습니까?

/people/{pid}/userData:updatePassword

있습니까?

서브 루틴이 포함 된 하나의 서비스를 구현하는 방법이 있습니다. 예 : /family 서비스가 있습니다. 나도 /family/{fid}/members을 가지고있다. 가족 서비스에 members 부분을 포함시킬 수있는 방법이 있습니까?

답변

0

HTTP는 URL에 작업을 수행하는 것을 저지하고 깃털은이 기능을 다른 많은 프레임 워크보다 엄격하게 시행합니다. GET 요청을 통해 데이터를 수정해서는 안되는 작업이 /users/:userid/delete 경로 인 이유에 대한 좋은 예입니다. Google 크롤러가 들어 와서 전체 사이트를 지울 수 있습니다.

생성, 수정 및 데이터가 POST가, PATCH, PUT 및 HTTP 메소드를 삭제하고 각각의 Feathers service methods .create, .patch, .update.remove가있는 것입니다 제거합니다.

제안 된 /people/{pid}/userData:updatePassword 대신 PATCH /people/{pid}{ "password": "newPassword" } JSON 본문을 사용합니다.

/family/{fid}/members과 같은 경로를 만들려면 here, 추가로 FAQ entry on nested routes을 참조하십시오.

+0

패치에 대해 알고 있습니다. 이 가이드는 https://cloud.google.com/apis/design/custom_methods에 있습니다. 그렇게 동사를 사용하는 방법이 있습니까? 두 번째 서비스를 만들지 않고 중첩 된 경로를 사용할 수 있습니까? – panitaxx

+0

언제든지 자신의 [Express 미들웨어] (https://expressjs.com/en/guide/using-middleware.html)를 등록 할 수 있지만 깃털은이를 지원하기 위해 더 이상 아무것도하지 않습니다. (또한 중첩 된 경로는 사용하기 쉽지 않습니다. 깃털의 큰 특징 인 웹 소켓을 통해). – Daff