¿Cómo se puede traducir una idea del mundo real para una aplicación a un diseño de RESTful API para ella?

Las estrategias más exitosas y flexibles que he empleado comienzan a identificar los “recursos” que su API servirá (por ejemplo, cuentas, productos, etc.)

Modele sus puntos finales iniciales alrededor de las funciones más básicas necesarias para estos recursos; crear (POST), leer (GET), actualizar (PUT), destruir (BORRAR) …

Ejemplos:

GET / account / {account_id}

^ Obtener cuenta por ID de cuenta

POST / producto

^ Crear un nuevo producto

A partir de ahí, extienda sus puntos finales para recuperar propiedades y realizar funciones adicionales (por ejemplo, Agregar una propiedad a un producto, o agregar un amigo a una cuenta, etc.)

Lectura recomendada;

  • Building Microservices: Designing Fine-Grained Systems: Sam Newman: 9781491950357: Amazon.com: Books
  • RESTful Web APIs: Servicios para un mundo cambiante: Leonard Richardson, Mike Amundsen, Sam Ruby: 9781449358068: Amazon.com: Libros

Determine lo que necesita para almacenar y acceder centralmente (compartido) y basar la especificación de API en eso. Inicialmente no piense “técnicamente”, solo lo que se intercambia y almacena.

Si va a enviar datos complejos a través de la API, le recomiendo usar JSON en ambas direcciones. De esa manera tienes la máxima flexibilidad.