7.3.2.5. collect-rest¶
7.3.2.5.1. Présentation¶
A faire
7.3.2.5.2. Packages:¶
fr.gouv.vitam.collect.dto : contient les objets entrants et sortants du service web d’application.
fr.gouv.vitam.collect.exception : classes d’exceptions gérées par le module collecte.
fr.gouv.vitam.collect.helpers : classes gérant la structure des objets en interne du module collecte.
fr.gouv.vitam.collect.model : classes interne du module collecte.
fr.gouv.vitam.collect.repository : classes pour mapper les objets de la base de données.
fr.gouv.vitam.collect.resource : classe du controlleur REST qui contient les endpoints.
fr.gouv.vitam.collect.server : classes de lancement du serveur d’application.
fr.gouv.vitam.collect.service : classes fonctionnelles.
7.3.2.5.3. fr.gouv.vitam.collect.resource¶
7.3.2.5.3.1. Rest API¶
7.3.2.6. -TransactionResource.java¶
classe controlleur REST La classe contient actuellement 6 méthodes :
- initTransaction()
@Path("/transactions")
@POST
@Consumes(APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
@Secured(permission = TRANSACTION_CREATE, description = "Créer une transaction")
public Response initTransaction(TransactionDto transactionDto) {
....
uploadArchiveUnit()
Ajouter une unité archivistique
@Path("/transactions/{transactionId}/units") @POST @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) @Secured(permission = TRANSACTION_UNIT_CREATE, description = "Créer une unité archivistique") public Response uploadArchiveUnit(@PathParam("transactionId") String transactionId, JsonNode unitJsonNode) { ...
uploadObjectGroup()
- ajouter un object group a une unité archivistique
NB : the post X-Http-Method-Override header
@Path("/units/{unitId}/objects/{usage}/{version}")
@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
@Secured(permission = TRANSACTION_OBJECT_UPSERT, description = "ajouter ou modifier un objet group")
public Response uploadObjectGroup(@PathParam("unitId") String unitId,
@PathParam("usage") String usageString,
@PathParam("version") Integer version,
ObjectDto objectDto) {
...
upload()
méthode pour uploader un binaire
@Path("/units/{unitId}/objects/{usage}/{version}/binary")
@POST
@Consumes(MediaType.APPLICATION_OCTET_STREAM)
@Produces(MediaType.APPLICATION_JSON)
@Secured(permission = TRANSACTION_BINARY_UPSERT, description = "ajouter ou modifier un binaire")
public Response upload(@PathParam("unitId") String unitId,
@PathParam("usage") String usageString,
@PathParam("version") Integer version,
InputStream uploadedInputStream) throws CollectException {
...
- closeTransaction()
fermeture de la transaction
@Path("/transactions/{transactionId}/close")
@POST
@Consumes(APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
@Secured(permission = TRANSACTION_CLOSE, description = "Fermer une transaction")
public Response closeTransaction(@PathParam("transactionId") String transactionId) {
...
generateAndSendSip()
génerer un SIP et l’envoyer a Vitam
@Path("/transactions/{transactionId}/send")
@POST
@Consumes(APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
@Secured(permission = TRANSACTION_SEND, description = "Envoyer une transaction")
public Response generateAndSendSip(@PathParam("transactionId") String transactionId) {
...