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.6. -TransactionResource.java

classe controlleur REST La classe contient actuellement 6 méthodes :

  1. 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) {

....
  1. 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) {

 ...
  1. 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) {
...
  1. 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 {
...
  1. 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) {
  ...
  1. 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) {
 ...