Skip to content

Criar endpoint para criar Article a partir de PidProviderXML #1444

Description

@robertatakenaka

Descrição da nova funcionalidade

Eu, como sistema de publicação (scms-upload), gostaria que o Core disponibilizasse um endpoint para registrar que um artigo identificado por pid_v3 e sps_pkg_name foi publicado ou atualizado no site público, então o Core possa recuperar os metadados do artigo no PidProviderXML, criar ou atualizar o registro de Article e, por consequência, disponibilizá-lo no OAI-PMH, que só expõe artigos com status público.


Critérios de aceitação

Para que esta tarefa seja considerada concluída, os seguintes pontos devem ser contemplados:

  • O endpoint deve aceitar requisições POST com o corpo contendo ao menos pid_v3 e sps_pkg_name como parâmetros de identificação do artigo;
  • Ao receber a requisição, o Core deve consultar o PidProviderXML usando pid_v3 e/ou sps_pkg_name para recuperar os metadados do artigo (título, autores, resumos, palavras-chave, DOI, ISSN, fascículo, datas etc.);
  • Com os dados recuperados, o Core deve criar o registro de Article caso ele ainda não exista, ou atualizá-lo caso já exista (operação upsert);
  • O Article criado ou atualizado deve ter seu status definido como público, tornando-o elegível para exposição via OAI-PMH;
  • O endpoint deve retornar resposta adequada: 201 Created para criação, 200 OK para atualização, com o identificador interno do Article no corpo da resposta;
  • O endpoint deve retornar 400 Bad Request se pid_v3 ou sps_pkg_name não forem fornecidos ou forem inválidos;
  • O endpoint deve retornar 404 Not Found se o PidProviderXML não localizar nenhum registro correspondente;
  • O endpoint deve ser protegido por autenticação via token, sendo acessível apenas por sistemas autorizados (ex: scms-upload), não por usuários finais;
  • O mecanismo de obtenção de token deve seguir o padrão já adotado no projeto — endpoint dedicado que recebe credenciais (username/password) e retorna um token de acesso a ser enviado no header Authorization: Token <token> nas chamadas subsequentes;
  • Deve haver registro de log da operação (criação vs. atualização, pid_v3, sps_pkg_name, timestamp);
  • O OAI-PMH deve, sem alterações adicionais, passar a listar o artigo após a execução bem-sucedida do endpoint, uma vez que o filtro de elegibilidade já é baseado no status público do Article;
  • Deve ser criada ou atualizada a documentação no wiki do projeto cobrindo:
    • Descrição do endpoint (rota, método HTTP, parâmetros, exemplos de request/response);
    • Fluxo de obtenção de token (endpoint, payload, formato do header de autenticação);
    • Comportamento esperado em cada cenário (criação, atualização, erros);
    • Pré-requisitos para que o artigo passe a ser exposto pelo OAI-PMH após o registro.

Anexos

N/A


Referências

  • Modelo PidProviderXML — app pid_provider do Core
  • Modelo Article — app article do Core
  • Protocolo OAI-PMH implementado no Core e seu filtro de artigos públicos

Metadata

Metadata

Labels

enhancementNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions