Documentação da API¶
Classes Principais¶
Toda a funcionalidade do Conector pode ser acessada através dessas duas classes.
Client¶
- class rapconector.client.Client(base_url, email=None, password=None)¶
Cliente da API.
- Parâmetros
base_url (str) – URL do conector.
email (str, optional) – E-mail para autenticação.
password (str, optional) – Senha para autenticação.
- Retorna
Instância da classe.
- Tipo de retorno
- with_document_id(document_id)¶
Retorna uma instância de
Document
com somente o campodocument_id
preenchido. Útil para evitar requisições adicionais. Por exemplo:# 2 requisições: uma para get_document() e outra para get_receipt() receipt = conector.get_document(372).get_receipt() # 1 única requisição, pois `with_document_id` cria um objeto vazio receipt = conector.with_document_id(372).get_receipt()
- Parâmetros
document_id (int) – Identificador do documento.
- Tipo de retorno
- get_group(group_id)¶
Exibe as informações básicas de um grupo de documentos, incluindo os slots ocupados e disponíveis para a inserção de novos documentos.
IMPORTANTE:: Novos documentos só devem ser inseridos em grupos parcialmente ocupados caso o documento seja do tipo do slot disponível e que contenha dados complementares aos demais documentos.
- Parâmetros
group_id (str) – Identificador do grupo de documentos.
- Retorna
O documento especificado, caso exista.
None
caso contrário.- Tipo de retorno
- list_groups(page=None, limit=None)¶
Lista todos os grupos de documentos, incluindo seus slots ocupados e disponíveis para a inserção de novos documentos.
IMPORTANTE:: Novos documentos só devem ser inseridos em grupos parcialmente ocupados caso o documento seja do tipo do slot disponível e que contenha dados complementares aos demais documentos.
- Parâmetros
page (int, optional) – Número da página utilizada na paginação dos resultados.
limit (int, optional) – Quantos items retornar por página.
- Retorna
Lista de grupos de documentos.
- Tipo de retorno
list(DocumentGroup)
- delete_group(group_id)¶
Deleta um grupo de documentos da base de dados do Conector, incluindo todos os documentos nele contidos.
IMPORTANTE:: Essa operação apaga apenas os documentos do registro local, de forma que não deleta os documentos preservados no registro do Serviço RAP. Para a remoção dos documentos do registro do RAP é necessário revogá-los antes deletar os dados no Conector.
- Parâmetros
group_id (str) – Identificador do grupo de documentos a ser removido.
- Retorna
Número de documentos removidos.
- Tipo de retorno
int
- get_document(id_or_security_code)¶
Exibe as informações básicas de um documento, incluindo o código de segurança que se torna disponível após o documento ser gerado e o recibo após o documento ser registrado.
Cada documento possui um código de segurança baseado no seu contexto. No caso do Diploma Digital esse código de segurança é o Código de Validação do Diploma.
- Parâmetros
id_or_security_code (int or str) – Identificador ou código de segurança do documento.
- Retorna
O documento especificado.
- Tipo de retorno
- list_documents(state=None, document_type=None, page=None, limit=None)¶
Lista todos os documentos processados pelo RAP Conector, indicando para cada documento o seu estado atual.
- Parâmetros
state (DocumentStateCode) – Código de estado para utilizar como filtro. O retorno incluirá todos os documentos que já passaram pelo estado especificado. Nesse contexto,
currentState
representa o estado corrente da consulta e não o estado atual do documento.document_type (DocumentType) – Tipo de documento, para utilizar como filtro.
page (int, optional) – Número da página utilizada na paginação dos resultados.
limit (int, optional) – Quantos items retornar por página.
- Retorna
Lista de documentos.
- Tipo de retorno
list(Document)
- insert_document(document_type, document_data, document_file=None)¶
Insere um novo documento ou um lote de documentos.
IMPORTANTE: As etapas de processamento dos documentos possuem uma ordem lógica bem definida que deve ser respeitada. Inicialmente deve ser gerada, assinada e registrada a Documentação Acadêmica. Após isso, deve ser gerado, assinado e registrado o Diploma Digital associado. Por último (opcionalmente) pode ser processada a Representação Visual do Diploma.
IMPORTANTE: Os arquivos PDF anexados em base64 no JSON da Documentação Acadêmica ou inseridos no campo
document_file
para a Representação Visual, devem estar preferencialmente no formato de preservação PDF/A (www.pdfa.org). Caso algum arquivo esteja no formato PDF comum, o Conector tentará a conversão automática que se for malsucedida, fará com que o documento entre no estado de erro de geração.- Parâmetros
document_type (
DocumentType
) – Código do tipo do documento.document_data (str) – Dados e metadados do documento, em formato JSON. No caso da inserção em lote, o JSON esperado é um array onde cada item representa (e obedece o schema) da inserção de um único documento. Caso o lote seja do tipo
DocumentType.VISUAL_REP_DEGREE
, deve ser adicionado nos metadados de cada documento o atributoattachment
contendo o nome e a extensão do arquivo utilizado no parâmetrodocument_file
para que a representação visual do diploma seja associada ao documento correspondente.document_file (tuple or list(tuple), optional) – Arquivo(s) do documento, onde um arquivo é uma tupla
name (str), file (IOBase), mime_type (str)
.
- Retorna
O identificador do documento inserido, ou uma lista de identificadores no caso da inserção em lote.
- Tipo de retorno
int or list(int)
- retrieve_file(document_type, client_id, your_number)¶
Recupera o arquivo de um documento diretamente do Serviço de Preservação usando os metadados do documento preservado.
- Parâmetros
document_type (
DocumentType
) – Código do tipo do documento.client_id (string) – Identificador da instituição cliente.
your_number (string) – Identificador do documento no contexto do cliente.
- Retorna
Um objeto
requests.Response
, com a propriedadestream
setada paraTrue
. Para exemplos de como realizar o download do arquivo de forma eficiente, ver https://stackoverflow.com/a/39217788 e https://2.python-requests.org/en/master/user/quickstart/#raw-response-content.- Tipo de retorno
requests.Response
- authenticate_document(document_type, document_file)¶
Verifica a autenticidade de um documento no contexto do registro do Serviço RAP.
- Parâmetros
document_type (
DocumentType
) – Código do tipo do documento.document_file (tuple or list(tuple), optional) – Arquivo para verificar, onde um arquivo é uma tupla
(name (str), file (IOBase), mime_type (str))
.
- Tipo de retorno
- healthcheck()¶
Retorna dados sobre a saúde do serviço. Por exemplo:
{ "status": "pass", "version": "1", "releaseId": "0.7.8", "checks": { "conector": [ { "status": "pass", "version": "0.7.8" } ], "RAP": [ { "status": "pass", "version": "1.0.0" } ], "database": [ { "status": "pass" } ] } }
- Retorna
Objeto JSON contendo informações sobre o estado do serviço.
- Tipo de retorno
dict
Document¶
- class rapconector.document.Document(client, json)¶
Representação de um documento no Conector.
- document_id¶
Identificador do documento.
- document_type¶
Tipo do documento. Possivelmente nulo. Ver
DocumentType
.
- group_id¶
Identificador do grupo ao qual o documento pertence. Possivelmente nulo.
- your_number¶
Identificador do documento no contexto do cliente. Possivelmente nulo.
- current_state¶
Código de estado atual do documento. Possivelmente nulo. Ver
DocumentStateCode
.
- security_code¶
Código de segurança do documento. Possivelmente nulo.
- receipt¶
Recibo do documento. Possivelmente nulo.
- update(document_type=None, document_data=None, document_file=None, update_description=None)¶
Atualiza o dados de um documento, quais sejam: tipo, JSON com dados e/ou arquivo gerado.
Após atualização, o documento retorna ao estado inicial reniciando sua geração/processamento. Documentos com estado de registro válido não são afetados por essa operação.
Nos casos em que um documento já está em estado válido de registro (estado 10) ou suspenso, é necessário revogar todo o seu respectivo grupo de documentos e reiniciar o processo de registro fazendo a inserção de novos documentos na ordem correta.
- Parâmetros
document_type (int, optional) – Código do tipo do documento.
document_data (str, optional) – Metadados do documento (string JSON).
document_file (tuple or list(tuple), optional) – Arquivo(s) do documento, onde um arquivo é uma tupla
(name (str), file (IOBase), mime_type (str))
update_description (str, optional) – Mensagem de atualização.
- Retorna
O identificador do documento atualizado.
- Tipo de retorno
int
- delete(cascade=False)¶
Deleta este documento da base de dados do RAP Conector.
ATENÇÃO: Essa operação apaga os registros apenas no Conector local, de forma que não deleta documentos preservados no contexto do Serviço RAP. Para remoção do(s) documento(s) no contexto do RAP é necessário revogá-lo(s) antes de ter seus dados deletados do Conector local.
- Parâmetros
cascade (bool, optional) – Se deve ocorrer remoção em cascata de documentos dependentes.
- Retorna
Número de documentos removidos.
- Tipo de retorno
int
- get_state()¶
Exibe o estado atual do documento.
Em caso de erro, suspensão, re-ativação ou revogação de documento, o campo aditionalInfo indicará a razão de entrada em cada estado.
As informações de suspensão, ativação e revogação podem ser utilizadas para mapear o histórico do documento conforme previsão na nota técnica referente a diplomas digitais: ver item 7.12 da Nota Técnica No. 13/2019/DIFES/SESU/SESU.
- Tipo de retorno
- get_history()¶
Retorna o histórico de processamento do documento.
- Tipo de retorno
list(DocumentStateChange)
- get_receipt()¶
Retorna o recibo do documento. Por exemplo:
{ "raw_signatures": [ "string" ], "doc_type": "string", "status": "string", "dlt_id": "string", "group_id": "string", "client_id": "string", "mime_type": "string", "our_number": "string", "your_number": "string", "client_signature": "string", "data": {}, "register_path": [], "created_at": "string", "updated_at": "string", "__v": int, "doc_hash": "string", "register_root": "string", "tx_date": "string", "tx_receipt": "string", "UUID": "string", "status_detail": "string", }
- Tipo de retorno
dict
- download_file(version)¶
Faz download de uma versão específica do arquivo do documento em formato XML.
Caso seja indicado
DocumentVersion.SIGNED
, o serviço irá retornar o estado atual do documento assinado. Caso a coleta de assinaturas ainda não tenha sido finalizada, esse documento pode ainda não representar o documento final assinado. Recomenda-se seu download quando o documento alcançar o status registrado no serviço (estadoDocumentStateCode.VALID
).A chamada desse método com parâmetro
version
contendoDocumentVersion.REGISTERED
faz o Conector realizar o download do arquivo diretamente do Serviço de Preservação. Esse arquivo só existe após o registro do documento no Serviço (estadoDocumentStateCode.VALID
). O acesso ao arquivo do Serviço de Preservação pode ser útil nos casos em que a cópia local foi corrompida. Caso a instituição escolha não enviar os documentos para registro, a versão de registro do arquivo não existirá.- Parâmetros
version (DocumentVersion) – Versão desejada do documento.
- Retorna
Um objeto
requests.Response
, com a propriedadestream
setada paraTrue
. Para exemplos de como realizar o download do arquivo de forma eficiente, ver https://stackoverflow.com/a/39217788 e https://2.python-requests.org/en/master/user/quickstart/#raw-response-content.- Tipo de retorno
requests.Response
- suspend(reason)¶
Suspende o documento.
- Parâmetros
reason (str) – Motivo da suspensão do documento.
- Retorna
Se o documento foi suspenso.
- Tipo de retorno
bool
- activate(reason)¶
Ativa o documento.
- Parâmetros
reason (str) – Motivo da re-ativação do documento.
- Retorna
Se o documento foi re-ativado.
- Tipo de retorno
bool
- revoke(reason)¶
Revoga um documento no contexto do Conector e no contexto do Serviço RAP.
- Parâmetros
reason (str) – Motivo da revogação do documento.
- Retorna
Se o documento foi marcado como “irá ser revogado”.
- Tipo de retorno
bool
- retry_processing(step=None)¶
Caso o documento esteja em um estado de falha, tenta reiniciar a etapa desejada do processamento.
- Parâmetros
step (
DocumentProcessingStep
, optional) – Qual etapa para re-executar. Caso omitido, a etapa tentará ser inferida a partir docurrent_state
do documento.- Retorna
True
em caso de sucesso.- Tipo de retorno
bool
Tipos de retorno¶
As classes abaixo representam os tipos de objetos que são retornados pelo Conector.
DocumentAuthenticityResult¶
- class rapconector.document.DocumentAuthenticityResult(json)¶
Resultado da autenticação de um documento.
Observação: o único campo que tem garantia de estar preenchido é o campo
valid
os outros campos podem ou não estar preenchidos, de acordo com a validade do documento.- dlt_id¶
Identificador da blockchain em que o documento está registrado.
- tx_receipt¶
Código do recibo da transação de registro do documento na blockchain escolhida.
- doc_hash¶
Hash do documento registrado na blockchain.
- valid¶
Booleano que indica se o status do documento é válido no serviço RAP.
- register_root¶
Raiz da estrutura de dados utilizada para registro do documento na blockchain.
- client_id¶
Identificador da instituição no serviço RAP.
- your_number¶
Identificador único do documento no serviço RAP.
- register_date¶
Data e hora de registro do documento na blockchain (timestamp Unix).
- confirmations¶
Número de confirmações da transação de registro do documento na blockchain.
- revocation_date¶
Data e hora da revogação do documento na blockchain (timestamp Unix).
DocumentGroup¶
DocumentSignature¶
- class rapconector.document.DocumentSignature(json)¶
Representação de uma assinatura em um documento.
- signer¶
Nome do assinante.
- tag¶
Tag da assinatura.
- state¶
Estado da assinatura. Ver
DocumentSignatureState
.
- archiving_signature¶
Se a assinatura é uma assinatura de arquivamento.
- substitute_signer¶
Nome do assinante substituto, caso exista.
- substitute_signature_state¶
Estado da assinatura substituta, caso exista. Ver
DocumentSignatureState
.
DocumentState¶
- class rapconector.document.DocumentState(current_state, description, additional_info, signatures)¶
Representação do estado atual do processamento de um documento.
- current_state¶
Código de estado atual do documento. Ver
DocumentStateCode
.
- description¶
Descrição textual do estado atual do documento.
- additional_info¶
Informações adicionais sobre o estado atual do documento.
- signatures¶
Assinaturas do documento. Ver
DocumentSignature
.
DocumentStateChange¶
- class rapconector.document.DocumentStateChange(previous_state, current_state, description, timestamp, additional_info)¶
Representação do histórico de processamento de um documento.
- previous_state¶
Código de estado anterior do documento. Ver
DocumentStateCode
.
- current_state¶
Código de estado atual do documento. Ver
DocumentStateCode
.
- timestamp¶
Timestamp (str) referente à mudança de estado do documento.
- description¶
Descrição textual do estado do documento.
- additional_info¶
Informações adicionais sobre o estado do documento.
Enumerações¶
Enums para facilitar o tratamento de strings e constantes númericas comumente utilizadas e retornadas pelo Conector.
DocumentProcessingStep¶
- class rapconector.document.DocumentProcessingStep¶
Enumeração das possíveis etapas de processamento para re-executar.
- PROCESSING = 'restart-processing'¶
Para re-executar o processamento de um documento.
- GENERATION = 'retry-generation'¶
Para re-executar o processo de geração de um documento.
- SIGNATURE = 'retry-signature'¶
Para re-executar o processo de assinatura de um documento.
- REVOCATION = 'retry-revocation'¶
Para re-executar o processo de revogação de um documento.
- REGISTRATION = 'retry-registration'¶
Para re-executar o processo de registro de um documento.
DocumentSignatureState¶
- class rapconector.document.DocumentSignatureState¶
Enumeração dos possíveis estados de uma
DocumentSignature
.- NOT_SIGNED = 0¶
Não assinado.
- PROCESSING = 1¶
Assinatura em processamento, no caso da assinatura principal.
- SUBSTITUTE_PROCESSING = 1¶
Assinatura substituta concluída.
- SIGNED = 2¶
Assinatura concluída.
DocumentStateCode¶
- class rapconector.document.DocumentStateCode¶
Enumeração dos possíveis estados de um
Document
.- UNKNOWN = 0¶
Desconhecido
- READY_TO_CREATE = 1¶
Pronto para gerar
- CREATED = 2¶
Gerado
- SIGNING_STARTING = 3¶
Iniciando assinatura
- SIGNING_STARTED = 4¶
Assinatura iniciada
- SIGNING_IN_PROGRESS = 5¶
Assinando documento
- SIGNED = 6¶
Documento assinado
- READY_FOR_REGISTRATION = 7¶
Pronto para registrar
- REGISTRATION_STARTED = 8¶
Registro iniciado
- REGISTRATION_FINISHED = 9¶
Processo finalizado
- VALID = 10¶
Documento válido
- SUSPENDED = 11¶
Documento suspenso
- REVOCATION_STARTED = 12¶
Iniciando revogação
- REVOCATION_IN_PROGRESS = 13¶
Revogando
- REVOKED = 14¶
Documento revogado
- ERROR_DURING_CREATION_PREPARATION = 500¶
Erro ao preparar a geração
- ERROR_DURING_CREATION = 501¶
Erro na geração
- ERROR_DURING_SIGNING_STARTING = 502¶
Erro ao iniciar a assinatura
- ERROR_DURING_SIGNING = 503¶
Erro ao assinar o documento
- ERROR_DURING_REGISTRATION = 504¶
Erro ao iniciar o registro
- ERROR_FINISHING_REGISTRATION = 505¶
Erro ao finalizar o registro
- ERROR_DURING_REVOCATION = 506¶
Erro na revogação
DocumentType¶
- class rapconector.document.DocumentType¶
Enumeração dos possíveis tipos de um
Document
.- DIGITAL_DEGREE = 2¶
Diploma digital. Equivalente a
digital_degree
.
- ACADEMIC_DOC_MEC_DEGREE = 4¶
Documentação acadêmica. Equivalente a
academic_doc_mec_degree
.
- VISUAL_REP_DEGREE = 5¶
Representação visual. Equivalente a
visual_rep_degree
.