Separando grupos de API

Esta é mais ou menos uma ideia que tive algumas semanas atrás e, quanto mais penso a respeito, mais faz sentido. A ideia é API do separada em 3 grupos: Public, Semi-Publice Internal; e separar as permissões e segurança dependendo de cada grupo.

Até onde eu sei , não existe um padrão semelhante a este. Se você conhece algum, por favor, me esclareça.

Interface pública do aplicativo

Agora, para não confundir ninguém, o “Público” na API é uma referência de como a interface é acessível, enquanto esses termos refletem o grupo de pessoas que deveriam estar acessando a interface, da seguinte forma:

  • Público: destinado a qualquer pessoa ver
  • Semi-público: Visível / acessível apenas para membros, parceiros e / ou afiliados.
  • Interno: Visível / acessível apenas para funcionários / membros de sua empresa / grupo / projeto.

Grupo Público

Este grupo de interfaces mostraria qualquer informação que possa estar disponível em seu site, sem fazer login; é claro que a quantidade e as informações que estão realmente disponíveis por meio da interface depende de você. Dependendo de seus servidores e das informações disponíveis, você pode limitar a quantidade de solicitações que um IP pode fazer em um determinado período; mas isso não é necessário.

Grupo Semi-Público

Este grupo de interfaces mostraria informações que estão disponíveis apenas para quem faz o login, podendo até permitir modificação de informações. Este grupo não deve conter nenhuma informação disponível no “Grupo Público” e deve limitar as solicitações por dados de login, por um período de tempo. Este grupo teria que enviar um nome de usuário e uma senha com hash.

Grupo Interno

Este grupo de interfaces permitiria apenas a alteração de variáveis ​​e refletiria pouca ou nenhuma informação. A ideia aqui é simplesmente permitir o gerenciamento remoto de um servidor. As estatísticas e as informações de rastreamento dos servidores devem ser transmitidas por meio de uma interface semipública, não por esta interface. Além de um limite de solicitação e nome de usuário e senha, é recomendável que você também solicite uma resposta de captcha.

A resposta recomendada para esta interface é uma declaração booleana simples (por exemplo, TRUE / FALSE ou 1/0), sugerindo se as alterações foram aplicadas.

Finalmente, este grupo deve existir apenas em um servidor privado, ou ser acessível apenas em certos subdomínios e / ou portas. No caso de um servidor privado, o servidor privado atuaria como um proxy para modificar outros servidores, enquanto os outros servidores basicamente aceitariam apenas solicitações de modificação do endereço IP do servidor privado. Caso contrário, usar uma porta ou subdomínio alternativo também seria eficaz.

Pensamentos finais

Acho que este poderia ser um sistema muito eficaz e poderia funcionar bem para muitos. De qualquer forma, acho que estarei pesquisando mais o assunto, e até mesmo fazendo alguns testes para fazer um sistema real e prático.

 
 
 

Obrigado pela leitura

Se você gostou do que escrevi, considere aprovar este protocolo ou me endossar .
Se você quiser ver mais coisas minhas, pode ver outros protocolos que escrevi ou visitar meu perfil .