Engenharia de software api-design
Perguntas com a marcação «api-design»
O design da interface de programação de aplicativos (API) discute as práticas recomendadas para criar bibliotecas destinadas a uso geral ou público.
Você deve escrever seu back-end como uma API?
Hoje tive uma discussão acalorada sobre nosso aplicativo MVC. Temos um site escrito em MVC ( ASP.NET ) e, geralmente, segue o padrão de fazer algo na exibição -> pressionar o controlador -> o controlador cria um modelo (chama um gerente que obtém os dados, cria o modelo no diretório …
Digamos que eu tenha uma entidade que tenha o atributo "type". Pode haver mais de 20 tipos possíveis. Agora me pedem para implementar algo que permita alterar o tipo de A-> B, que é o único caso de uso. Então, devo implementar algo que permita alterações arbitrárias de tipo, desde …
Devo retornar um status HTTP 400 (Solicitação incorreta) se um parâmetro estiver sintaticamente correto, mas violar uma regra de negócios?
Digamos que eu tenho um ponto de extremidade REST que usa um número inteiro como parâmetro: /makeWaffles?numberOfWaffles=3 Nesse caso, quero que o número seja positivo, porque não posso fazer um número negativo de waffles (e solicitar 0 waffles é uma perda de tempo). Então, eu quero rejeitar qualquer solicitação que …
Qual deve ser o código de status http para o erro "Serviço não disponível em sua área"?
Nosso serviço está em 5 cidades no momento. Se alguém tentar chamar nossa API de serviço de qualquer outra cidade, queremos lançar esse erro Service not available in your area. A questão é: qual seria o código http apropriado para esse erro? 503 serviço indisponível 403: Proibido ou alguma outra …
Muitas solicitações pequenas versus poucas solicitações grandes (Design da API)
Atualmente, estou trabalhando em um projeto com uma organização da seguinte maneira: Cliente - Obtém dados do servidor principal via API REST. Servidor - solicita dados de vários outros servidores por meio de APIs de terceiros APIs de terceiros - serviços fora do meu controle que fornecem dados ao servidor …
Por que o método PATCH não é idempotente?
Eu estava pensando sobre isso. Suponha que eu tenha um userrecurso com ide namecampos. Se eu quiser atualizar um campo, poderia fazer uma solicitação PATCH para o recurso como este PATCH /users/42 {"name": "john doe"} E então o aplicativo atualizará o nome do usuário 42. Mas por que, se eu …
Quão necessário é seguir práticas defensivas de programação para códigos que nunca serão disponibilizados ao público?
Estou escrevendo uma implementação Java de um jogo de cartas, então criei um tipo especial de coleção que estou chamando de zona. Todos os métodos de modificação do Java's Collection não são suportados, mas há um método na API da região move(Zone, Card), que move um cartão da região em …
O que há de tão ruim no DOM?
Continuo ouvindo pessoas (Crockford em particular) dizendo que o DOM é uma API terrível, mas não justificando realmente essa afirmação. Além das inconsistências entre navegadores, quais são algumas das razões pelas quais o DOM é considerado tão ruim?
Por que java.util.ArrayList permite adicionar nulo?
Eu me pergunto por que java.util.ArrayListpermite adicionar null. Existe algum caso em que eu gostaria de adicionar nulla um ArrayList? Estou fazendo essa pergunta porque, em um projeto, tivemos um bug em que algum código estava sendo adicionado nullao arquivo ArrayListe era difícil identificar onde estava o erro. Obviamente, um …
Uma API REST deve retornar um erro interno do servidor 500 para indicar que uma consulta faz referência a um objeto que não existe?
Estou trabalhando com uma API REST que reside em um servidor que lida com dados de vários dispositivos IoT. Minha tarefa é consultar o servidor usando a API para coletar informações de desempenho específicas sobre esses dispositivos. Em uma instância, obtenho uma lista de dispositivos disponíveis e seus identificadores correspondentes …