REST API cuando los ID son URL

Estoy desarrollando un API REST pero me enfrenté al siguiente problema: en algunos casos, la identificación de mis recursos son URL.

La API se usa para ambos, un software donde las ID están en formato UUID y un FileSystem donde la única forma de identificar recursos es mediante el uso de su ruta.

Entonces, para recuperar un recurso, uso una declaración GET como esa: - http: // localhost / files / {id}

Cuando estoy recuperando un documento almacenado en la base de datos del software, {id} es algo así como "2ab89005-b938-46c8-9d22-3a12a3c40672", pero cuando el documento está en un FileSystem, el {id} puede ser algo así como " /documents/2018/april/myfile.pdf ".

¿Cómo puedo manejar esta situación? Hasta ahora, estoy haciendo una solicitud GET sobre la URL " http: // localhost / files / " (sin {id}) e incluyendo la información requerida en el cuerpo en formato JSON:

{
    "id": {id}
}

Por supuesto, sé que esta no es una buena práctica, pero no sé cómo puedo implementar la arquitectura REST en esta situación. Estoy usando Java + Spring Boot.

Gracias.


SOLUCIÓN IMPLEMENTADA: Al final, he creado el siguiente punto final: http: // localhost / files /? Id = {id}. La resonancia de hacer esto es porque la aplicación que me llama no sabe si está pidiendo un recurso almacenado en un FileSystem o en mi base de datos. Si la aplicación lo sabe, creo que es mejor implementar dos puntos finales: http: // localhost / files /? Id = {id} (para FileSystem) y http: // localhost / files / {id} (para la base de datos) .

Respuesta 1

Estoy tratando de ejecutar el siguiente código. Pero cada vez que ejecuto se abre una nueva ventana de Chrome. Cómo arreglar este problema. Además, la nueva instancia de Chrome que se abre no está conectada, por lo que no puedo usar la extensión ...

Recibo este error al agregar botones a una barra de herramientas Excepción en el hilo "AWT-EventQueue-0" java.lang.ClassCastException: Sketcher.SketcherFrame $ ColorAction no se puede lanzar a javax.swing.Icon ...

Spring docs dice que es necesario configurar el cliente http para WebClient manualmente para establecer tiempos de espera: https://docs.spring.io/spring/docs/current/spring-framework-reference/web-reactive.html#webflux-client-. ..

Soy un desarrollador de PHP pero estoy haciendo la transición a Java. (muy nuevo en Java en este momento) ¿Hay alguna manera de hacer una llamada ajax a un Servlet y responder con la salida de un archivo .jsp separado (en lugar de ...