Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá.
Vou criar uma API pública e tenho uma dúvida quanto a retorno de erros/validações...
Digamos um classe Alunos com os atributos: Nome, Idade, Telefone;
Nome e Telefone são atributos de preenchimento obrigatórios;
Caso esses campos cheguem na API sem preenchimento, como fazer o retorno ao cliente (consumidor da API), informando que esses campos dever ser preenchidos?!
Retorno na mesma requisição os dois erros ou um erro em cada requisição?!
Estou considerando que na API chegou valores sem preenchimento...>
2 horas atrás, Gabriel Heming disse:
Se for SOAP lance uma exception através de SoapFault. Se for REST, retorne o código 422 (Unprocessable Entity) junto com a mensagem de erro. Sobre rest você pode ler um pouco mais aqui.
É REST!
Vi o link que você mandou e lá tem o seguinte código
// Validate some input from the user, and it is invalid:
$response = new ResponseError(ResponseError::STATUS_UNPROCESSABLE_ENTITY);
$response->addMessage('first_name', 'is required');
$response->addMessage('telephone', 'should not exceed 12 characters');
$response->addMessage('telephone', 'is not in the correct format');
return $response;
Minha dúvida é a seguinte... seguir o artigo para gerar o retorno para quem consome a api é uma boa prática?!
Se sim, considerando o código acima (validação falhar para first_name e telephone) eu devo retornar as 3 mensagens da validação na juntas ou separadas, obrigando fazer uma novas chamadas a api?! ou seja, para cada request eu mando apenas 1 unica mensagem de erro no response ?!
cada mensagem de validacao eu retorno e para a execucao do script?!
Obrigado!>
3 minutos atrás, ppanetony disse:
Minha dúvida é a seguinte... seguir o artigo para gerar o retorno para quem consome a api é uma boa prática?!
O artigo é bom. Mas considerando apenas REST, as boas práticas são as seguintes:
-
Considerar os códigos HTTP;
-
Considerar os métodos HTTP;
-
Usar JSON.
No mais, como você irá enviar/receber as mensagens, é sua padronização. Cada API tem a sua, mas é bom procurar como outras APIs funcionam para seguir uma linha similar.
>
3 minutos atrás, ppanetony disse:
Se sim, considerando o código acima (validação falhar para first_name e telephone) eu devo retornar as 3 mensagens da validação na juntas ou separadas, obrigando fazer uma novas chamadas a api?! ou seja, para cada request eu mando apenas 1 unica mensagem de erro no response ?!
cada mensagem de validacao eu retorno e para a execucao do script?!
Isso é um tanto indiferente do ponto de vista de padronização. Do ponto de vista de UX (User eXperience), é melhor retornar todos os erros em conjunto.
Se for SOAP lance uma exception através de SoapFault. Se for REST, retorne o código 422 (Unprocessable Entity) junto com a mensagem de erro. Sobre rest você pode ler um pouco mais aqui.