VERBOS WEBAPI

DS2T 17/01/2016 12:45:38
#456209
Olá a todos!

Sou iniciante nessa parte de WebApi.
Reparei que os métodos precisam ser assinados. de forma que o inicio de seus nomes tenha um verbo.
Exemplo:

GETusuario
POSTusuario
DELETEusuario
PUTusuario

Li alguns artigos que dizem basicamente:

Use Get para solicitar alguma informação;
Use Post para inserir alguma informação;
Delete para deletar;
Put para atualizar;

Mas também vi posts falando que você podia usar Put e Post da mesma forma.
Só que não entendi uma coisa.

Quando eu consumo qualquer método/função WebApi, ele executa uma subrotina qualquer. Quero saber, o que me impede de num método assinado com Delete, eu persistir alguma informação, por exemplo? O que me impede de eu querer solicitar a informação no Post? Tendo em vista que eu posso retornar um HttpMessage da mesma forma... é apenas convenção isso daí? Muda alguma coisa?

Se a pergunta for idiota, peço desculpas.

Grande abraço!
LAMPIAO 17/01/2016 14:02:28
#456212
Resposta escolhida
Fala DS2T, finalmente estou de volta, de volta ao trabalho.

Veja só, isso faz parte de uma convenção/padrão/regra, não precisa seguir essa convenção, a menos que você queira tornar sua API pública, então quem for consumir vai se basear no padrão, mesmo assim você pode documentar a API mostrando como consumir os recursos que não seguem o padrão.

Embora seja possível usar sem especificar os verbos e dessa forma vai seguir o padrão, o correto é definir os verbos corretamente.

Partindo desse ponto de vista, você não precisa seguir a risca, eu mesmo só uso o POST e o GET, na minha visão não importa se você esta enviando uma informação nova para ser inserida no banco ou se esta enviando dados para alteração ou mesmo exclusão, eu uso o POST para isso, e ele pode me retornar alguma coisa, como por exemplo o próprio objeto persistido ou uma mensagem de sucesso ou não na operação, já o GET uso apenas para recuperar informações.

Então mesmo que você não siga o padrão, tente pelo menos ter um padrão definido por você mesmo, não tente resumir tudo em apenas um verbo, vai ficar esquisito demais.

Para mim o GET e o POST tem sido mais do que suficiente para fazer o que eu faço, GET apenas para recuperar algo e o POST para postar algo, não importando se esse algo é novo, se é para alterar ou apenas para excluir ok.

Lembrando que é uma forma que eu mesmo moldei para o meu ambiente, e que no momento funciona muito bem, não representa a palavra final do que é correto, não dá pelo menos para mim seguir todos os padrões de mercado, o DDD mesmo é um exemplo, comecei a usar parte dele no meu projeto, mas nem tudo foi possível aplicar e demanda muito tempo e muitos testes.

Abraços


KERPLUNK 17/01/2016 17:41:16
#456220
LAMPIAO, disse tudo que eu iria dizer...
DS2T 20/01/2016 01:24:19
#456276
Entendi Lampião!

Obrigado cara!
Boa volta ao trabalho aí! Tudo de bom!

Tópico encerrado , respostas não são mais permitidas