¿Cómo debería verse una consulta cuando quiero recuperar las últimas measurements de installations que no se eliminaron?

¿Algo como eso?

/my-web-service/installations/measurements/last?removed=false

La cuestión es que no quiero recuperar las últimas measurements que no se eliminaron de installations. Quiero recuperar las últimas measurements de installations que no se eliminaron.

1
Defozo 14 nov. 2017 a las 14:51

2 respuestas

La mejor respuesta

Veo un par de posibilidades aquí:

  1. Si necesita leer los datos del punto final transaccionalmente , la forma en que los diseñó es el camino a seguir. Lo que cambiaría es el nombre del parámetro de removed a installationRemoved ya que es más descriptivo y acortaría el extremo a /my-web-service/measurements/, ya que con installations no está claro en qué alcance opera el cliente. Además, ¿no necesita el parámetro since para filtrar las últimas medidas?

  2. Existe la posibilidad de dividir los dos puntos finales que agregaría:

    • /my-web-service/installations/?removed=false
    • /my-web-service/measurements/?since=timestamp&installations=<array>

    No lo hace mejor (cuando se trata de mejor o peor), sino más fácil y más predictivo para los usuarios.

En general, intente agregar puntos finales más generales con opciones de filtrado en lugar de altamente dedicados, haciendo una cosa en particular. De esta manera, se genera una API suelta y difícil de usar. Además, en filtrado.

Y aviso final, su API es buena si sus clientes la usan no porque tienen que hacerlo sino cuando les gusta;)

1
Opal 14 nov. 2017 a las 12:13

Según este artículo de prácticas recomendadas, puede usar "alias para consultas comunes":

Para que la experiencia de la API sea más agradable para el consumidor promedio, considere empaquetar conjuntos de condiciones en rutas RESTful de fácil acceso. Por ejemplo, la consulta anterior de tickets cerrados recientemente podría empaquetarse como GET / tickets / recent_closed

Entonces, en tu caso, podría ser:

/my-web-service/installations/non_removed/measurements/last

Donde non_removed sería un alias para consultar instalaciones que no se eliminaron.

¡Espero que ayude!

1
Héctor 14 nov. 2017 a las 12:17