Frases informáticas

El código sin pruebas no es código.

domingo, 1 de agosto de 2021

Buenas prácticas: Nomenclatura API

Este es un extracto traducido de algunos de los 22 puntos de este artículo de Mohammad Faisal, al que recomiendo seguir, así como al canal BetterProgramming.

Link del artículo original: https://link.medium.com/urkTEwQzmib

Link de Mohammad Faisal: https://56faisal.medium.com/

Link de BetterProgramming: https://betterprogramming.pub/

Solo he obtenido los puntos relativos a nomenclatura, pero todos los demás son muy interesantes.

1. Usar kebab-case para las URLs. 

Mal

/systemOrders
/system_orders

Bien

/system-orders

2.Usar camelCase para los parámetros.

Mal

/system-orders/{order_id}
/system-orders/{OrderId}

Bien

/system-orders/{OrderId}

3. Usa plurales para apuntar a una colección.

Si quieres obtener todos los usuarios de un sistema:

Mal

GET /user
GET /User

Bien

GET /users

4. No utilices verbos en la URL

Mal

POST /updateuser/{userId}
GET /getusers

Bien

PUT /user/{userId}

5. Usa camelCase para propiedades JSON

Mal

{
user_name: "Mohammad Faisal"
user_id: "1"
}

Bien

{
userName: "Mohammad Faisal"
userId: "1"
}

6. No expongas tu arquitectura, como el nombre de tu tabla como un recurso.

Mal: product_order

Bien: product-orders

7. Usa ordinales simples como versión.

Usa el código de versión de forma simple, con versiones enteras lo mas a la izquierda  posible. Esto permitirá tener colecciones de endpoint y modificar enpoints a su derecha sin romper la funcionalidad de versiones anteriores.

http://api.domain.com/v1/shops/3/products

8. Incluye el número total de recursos en tu respuesta.

Mal

{
    users: [
     ...
    ]
}

Bien

{
    users: [
    ...
    ],
    total: 34
}

9. Usar métodos HTTP para funciones CRUD. 
Se relaciona con el 4.

GET: Obtiene una representación de un recurdo

POST: Crea un nuevo recurso y subrecursos

PUT: Actualiza recursos existentes

PATCH: Actualiza recursos existentes, pero solo actualiza los campos que fueron utilizados, dejando los demás como estaban.

DELETE: Borra un recurso


No hay comentarios:

Publicar un comentario

Siéntete libre de aportar nuevas ideas y términos al glosario y por favor mejorar las definiciones, reducir el ruido y ampliar con ejemplos. La idea no es repetir la wikipedia sino tener una documentación escueta, accesible, pero que sea clara y esté correctamente expresada, sin aportar más confusión. Puedes añadir ejemplos en cualquier lenguaje. Cuantos más mejor. Puedes incluir referencias a cualquier enlace incluso propio que tenga relación.

Definición: Software

Hay varias definiciones. Sin entrar en temas demasiado técnicos, serían estas dos, de las mas aceptadas: "Es la información que le sumi...