Skip to content

Manipulando documentos

Vinícius Pozzebon edited this page Sep 18, 2017 · 22 revisions

Versão 2.0.0

Upload com promise

[POST] /v2/upload/{ref_id}/

Input

  • {ref_id}
  • name
  • mime-type
  • upload_tipo_cod
  • data
  • checksum

Payload:

{
   "files":[
      {
         "name":"DOC0025.jpg",
         "mime-type":"image/jpeg",
         "upload_tipo_cod":[
            2,
            11
         ],
         "data":"/9j/4R1IRXhpZgAATU0AKgAAAAgADAEAAAMAAAABA80AAAEBAAMAAAABAmcAAAECAAMAAAADAAAAngEGAA..."
      }
   ],
   "checksum":"abcdddddd",
   "device":{
      "id":"4782b0e77c00b724",
      "log":{
         "ip":"192.168.234.104",
         "lat":"-7.983676666666666",
         "lon":"-34.83896666666667"
      }
   }
}

Retorno:

O endpoint retornará uma "promise" para o upload enviado, conforme exemplo abaixo:

{
   "success":true,
   "data":{
      "StorageAPI":{
         "send_id":"abcd123",
         "timestamp_start":121212333,
         "timestamp_end":null,
         "send_status_code":206,
         "files":[
            {
               "file_id":"{hash}",
               "name":"DOC0025.jpg",
               "timestamp_start":123123123,
               "timestamp_end":null,
               "status_code":202,
               "url":null,
               "width":null,
               "height":null,
               "upload_tipo_cod":[
                  0
               ]
            },
            {
               "file_id":"{hash}",
               "name":"DOC0026.jpg",
               "timestamp_start":123123123,
               "timestamp_end":321321321,
               "status_code":201,
               "url":"https://s3.amazonaws.com/{hash}.jpg",
               "width":970,
               "height":615,
               "upload_tipo_cod":[
                  0
               ]
            },
            {
               "file_id":"{hash}",
               "name":"DOC0027.jpg",
               "timestamp_start":123123123,
               "timestamp_end":321321321,
               "status_code":415,
               "url":null,
               "width":null,
               "height":null,
               "upload_tipo_cod":[
                  0
               ]
            }
         ]
      }
   }
}

Consultando a lista de promises de um {ref_id}

[GET] /v2/promises/{ref_id}/

Retorno:

{
   "success":true,
   "data":{
      "StorageAPI":{
         "promises":[
            {
               "send_id":"abcd000",
               "timestamp_start":121212333,
               "timestamp_end":1211212334,
               "send_status_code":200,
               "files":[
                  {
                     "file_id":"{hash}",
                     "name":"DOC0025.jpg",
                     "timestamp_start":123123123,
                     "timestamp_end":null,
                     "status_code":201,
                     "url":"https://s3.amazonaws.com/{hash}.jpg",
                     "width":970,
                     "height":615,
                     "upload_tipo_cod":[
                        1
                     ]
                  }
               ]
            },
            {
               "send_id":"abcd123",
               "timestamp_start":121212333,
               "timestamp_end":1211212334,
               "send_status_code":200,
               "files":[
                  {
                     "file_id":"{hash}",
                     "name":"DOC0025.jpg",
                     "timestamp_start":123123123,
                     "timestamp_end":null,
                     "status_code":201,
                     "url":"https://s3.amazonaws.com/{hash}.jpg",
                     "width":970,
                     "height":615,
                     "upload_tipo_cod":[
                        1
                     ]
                  },
                  {
                     "file_id":"{hash}",
                     "name":"DOC0026.jpg",
                     "timestamp_start":123123123,
                     "timestamp_end":321321321,
                     "status_code":201,
                     "url":"https://s3.amazonaws.com/{hash}.jpg",
                     "width":970,
                     "height":615,
                     "upload_tipo_cod":[
                        1,
                        2
                     ]
                  },
                  {
                     "file_id":"{hash}",
                     "name":"DOC0027.jpg",
                     "timestamp_start":123123123,
                     "timestamp_end":321321321,
                     "status_code":415,
                     "url":null,
                     "width":null,
                     "height":null,
                     "upload_tipo_cod":[
                        0
                     ]
                  }
               ]
            }
         ]
      }
   }
}

Consultando o status de uma promise

[GET] /v2/promise/{send_id}/

Retorno:

{
   "success":true,
   "data":{
      "StorageAPI":{
         "send_id":"abcd123",
         "timestamp_start":121212333,
         "timestamp_end":1211212334,
         "send_status_code":200,
         "files":[
            {
               "file_id":"{hash}",
               "name":"DOC0025.jpg",
               "timestamp_start":123123123,
               "timestamp_end":null,
               "status_code":201,
               "url":"https://s3.amazonaws.com/{hash}.jpg",
               "width":970,
               "height":615,
               "upload_tipo_cod":[
                  1
               ]
            },
            {
               "file_id":"{hash}",
               "name":"DOC0026.jpg",
               "timestamp_start":123123123,
               "timestamp_end":321321321,
               "status_code":201,
               "url":"https://s3.amazonaws.com/{hash}.jpg",
               "width":970,
               "height":615,
               "upload_tipo_cod":[
                  1
               ]
            },
            {
               "file_id":"{hash}",
               "name":"DOC0027.jpg",
               "timestamp_start":123123123,
               "timestamp_end":321321321,
               "status_code":415,
               "url":null,
               "width":null,
               "height":null,
               "upload_tipo_cod":[
                  0
               ]
            }
         ]
      }
   }
}

Explicando:

A posição "send_status_code" retorna o status code que identifica se o lote foi aceito para processamento ou não:

  • 200, caso o lote todo já tenha sido processado;
  • 206, caso algum dos arquivos do lote ainda esteja sendo processado;
  • 40*, em caso de erros de requisição do front-end;
  • 50*, em caso de erro interno no back-end;

Individualmente, cada arquivo remetido também retorna um status code que identifica se o arquivo foi processado com sucesso, se está aguardando processamento ou se foi recusado pela API.

  • 201, em caso de sucesso;
  • 202, caso tenha sido aceito para processamento;
  • 40*, caso o front-end tenha submetido uma requisição inconsistente;
  • 415, caso o formato de arquivo remetido não seja suportado;
  • 50*, caso durante o processamento do arquivo, o back-end tenha encontrado uma exceção não tratada;

Obtendo a lista de todos os documentos de uma {ref_id}

[GET] /v2/docs/{ref_id}/

Input

  • {ref_id}

Output

{
   "success":true,
   "data":{
      "StorageAPI":{
         "files":[
            {
               "file_id":"{hash}",
               "name":"DOC0025.jpg",
               "mime-type":"image/jpeg",
               "url":"url-do-arquivo.jpg",
               "width":675,
               "height":325,
               "upload_tipo_cod":[
                  0,
                  3,
                  8
               ]
            },
            {
               "file_id":"{hash}",
               "name":"DOC0028.jpeg",
               "mime-type":"image/jpeg",
               "url":"url-do-arquivo.jpg",
               "width":300,
               "height":320,
               "upload_tipo_cod":[
                  2,
                  4
               ]
            }
         ]
      }
   }
}

Consultando documentos de uma {ref_id} pelo tipo de documento

[GET] /v2/docs/{ref_id}/{upload_tipo_cod}/

Input

  • {ref_id}
  • {upload_tipo_cod}

Output

Abaixo vemos o exemplo de uma requisição de retornar documentos de uma determinada {ref_id} onde o {upload_tipo_cod} requisitado foi "3":

{
   "success":true,
   "data":{
      "StorageAPI":{
         "files":[
            {
               "file_id":"{hash}",
               "name":"DOC0025.jpg",
               "mime-type":"image/jpeg",
               "url":"url-do-arquivo.jpg",
               "width":675,
               "height":325,
               "upload_tipo_cod":[
                  0,
                  3,
                  8
               ]
            }
         ]
      }
   }
}

Obtendo os detalhes de um documento

[GET] /v2/doc/{file_id}/

Input

  • {file_id}

Output

{
   "success":true,
   "data":{
      "StorageAPI":{
         "file":{
            "file_id":"{hash}",
            "name":"DOC0025.jpg",
            "mime-type":"image/jpeg",
            "url":"url-do-arquivo.jpg",
            "width":675,
            "height":325,
            "upload_tipo_cod":[
               0,
               3,
               8
            ],
            "timestamp":123123,
            "owner":"Vinícius Pozzebon"
         }
      }
   }
}