Diferenciar Guardar y Enviar en Rest API

Pregunta sobre cómo guardar datos de formulario en MongoDB con Rest API. Tengo tres escenarios diferentes.

  1. Guardar y volver (la primera vez que se guardan los datos parcialmente y se devuelve la identificación para futuras devoluciones).
  2. Envíe los datos ya guardados (segunda vez, complete el formulario y realice el envío final, de modo que pueda activar otro flujo de trabajo)
  3. Enviar directamente (envíe el formulario completo la primera vez y devuelva la identificación y comience el flujo de trabajo)

Para el escenario anterior, se me ocurrió el siguiente recurso API

POST --> v1/applications   (This will save data and return id)
PUT --> v1/applications/{id} (This will retrieve data using id parameter and update that data)

Mi confusión es cómo diferenciar tanto la API, ya sea solo guardar o enviar la llamada final, porque tengo que comenzar el flujo de trabajo después del envío final. ¿Puedo usar algún parámetro de consulta como el siguiente para indicar enviar o guardar?

POST --> v1/applications?submit=true or false   (This will save data and return id)
PUT --> v1/applications/{id}?submit=true or false (This will retrieve data using id parameter and update that data)

¿O tenemos un mejor enfoque para diferenciar guardar y enviar dentro de esta API?

Respuesta 1

Mi confusión es cómo diferenciar tanto la API, ya sea solo guardar o enviar la llamada final, porque tengo que comenzar el flujo de trabajo después del envío final. ¿Puedo usar algún parámetro de consulta como el siguiente para indicar enviar o guardar?

Creo que sería mucho más común codificar esa señal en el cuerpo de la solicitud, en lugar de tratar de atornillar la URL.

PUT /applications/12345

Version: 1
Status:  Draft

PUT /applications/12345

Version: 2
Status:  Final

Tenga en cuenta que el URI es un identificador para un recurso (también conocido como un documento). Hacer un trabajo interesante es un efecto secundario de pasar documentos. Ver Jim Webber .

Si estuviera haciendo todo en HTML, que no es compatible de forma nativa PUT, probablemente usaría POST, con un formulario para ediciones y otro para finalizar, o tal vez un formulario único diseñado para manejar ambos casos de uso.

Una pregunta, entonces, por primera vez, guardar o enviar directamente la primera vez debe usar POST / aplicaciones. Estoy en lo cierto?

Esa es una opción común, pero no es obligatoria. La verdadera distinción es esta: ¿estamos creando el nuevo recurso en la URL de destino ?

Si es así, entonces PUT, POST, PATCHson todas las posibilidades.

Si no, si estamos enviando la solicitud a un recurso del servidor, esperando que el recurso creado esté en otro lugar, entonces POSTes la opción adecuada.

Respuesta: 2

Tengo una pregunta: en Java, tengo una clase Fresher, que extiende a Employee e implementa una interfaz IFresher. Por favor, consulte el código a continuación. interfaz pública IFresher {// Algunas otras cosas ...

Necesito compilar muchos archivos JavaScript para ejecutar en Nashorn. ¿Cada uno de estos archivos genera una clase Java? ¿Estas clases Java tienen identificadores de archivos en el sistema operativo?

Sé cómo obtener la lista de impresoras disponibles, quiero que los usuarios puedan seleccionar de una lista y configurarla como predeterminada para la sesión. Usando Windows 7 Sé que esto se hace fácilmente, solo ...

Mi programa es un juego simple en el que estás tratando de descubrir una palabra aleatoria de 5 letras adivinando palabras y diciéndote cuántas letras son iguales (spin off de Jotto). Conjeturas y resultados anteriores ...