Rest API para vários aplicativos?
Recentemente, comecei a aprender sobre APIs REST e estou tentando entender como funcionam e para que são utilizadas. Pelo que li até agora e pelo que entendi, uma API REST pode ser usada como back-end para vários aplicativos diferentes ao mesmo tempo, aplicativos Android, aplicativos web, etc. É esse o principal uso de uma API REST ou é apenas algo que fornece, mas não o principal motivo para usá-lo. Ou estou completamente errado?
Edit: Eu não queria adicionar mais perguntas aqui, então criei uma nova pergunta relativa: API vs API REST se você puder ir dar uma olhada, eu realmente apreciaria. Obrigado também por me responder.
Respostas
REST é um padrão de arquitetura de API; APIs REST são diferenciadas de outras APIs por seu design. Eles oferecem uma interface padronizada para interagir com recursos de dados. Uma API REST para uma instituição financeira seria estruturada de forma semelhante a uma para um sistema hospitalar; diferentes espaços de problemas, mas design de API semelhante.
Qualquer API REST ou não REST pode ser usada por vários aplicativos, então não é seguro dizer que APIs REST são mais reutilizáveis do que APIs não REST. REST é simplesmente um padrão comum para implementar operações de acesso / manipulação de dados por meio de uma API.
Por exemplo, se eu tivesse uma API da web que gerenciava fooobjetos, poderia ter os seguintes endpoints HTTP para uma API RESTful:
GET /foo/<id> # Look up a foo
POST /foo # Create a new foo
Ou, se não estiver seguindo as diretrizes REST, posso ter:
GET /foo?id=<id> # Look up a foo
POST /newFoo # Create a new foo
A última API é tecnicamente tão reutilizável quanto a anterior, mas a primeira é mais padronizada e será mais reconhecida por desenvolvedores que já usaram REST antes.
Para saber mais sobre os padrões / diretrizes do REST, consulte Transferência de estado representacional .