Basicamente, um recurso do meu aplicativo é recuperar os amigos do usuário conectado.
Na verdade, hesito entre os dois tipos de terminais:
- GET / api / usuários / amigos
- GET / api / users /: userId / friends
Usando 1, userId
seria acessível através do token de autenticação.
Usando 2, o servidor precisaria verificar adicionalmente a correspondência entre o passado userId
e o ID do usuário registrado especificado no token de autenticação, para evitar qualquer acesso malicioso a outros dados do usuário, como amigos.
Portanto, devo ser suficiente, mas não parece um URL de descanso padrão.
O que é uma boa prática?
fonte
GET /api/friends
eu iria renomeá-loGET /api/myFriends
. Do ponto de vista da descoberta, é mais auto-documentado. Além disso, com o REST, é útil pensar em como um cache de navegador / proxy lidaria com isso. ComGET /api/myFriends
isso, é perfeitamente possível ter um erro em que você exibe os amigos errados devido ao cache.As APIs de repouso devem ser guiadas por hipertexto! Como você clicaria de um link para outro em uma página html padrão.
Um URL é um identificador exclusivo para um recurso. Ter um URL representando mais de um recurso está em total desacordo com o ReST.
Com seu exemplo, o seguinte URL:
deve ter um link em sua resposta ao: userId friends url
A dissertação de Roy Fielding contém um conjunto de restrições necessárias para cumprir o ReST.
http://roy.gbiv.com/untangled/2008/rest-apis-must-be-hypertext-driven http://fr.slideshare.net/rnewton/2013-06q-connycrestfulwebapis http: //www.ics. uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm
fonte