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

Fields

No fields configured for Feature.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions