Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

API de mudanças #50

Closed
gustavofonseca opened this issue Feb 12, 2019 · 4 comments
Closed

API de mudanças #50

gustavofonseca opened this issue Feb 12, 2019 · 4 comments
Assignees
Milestone

Comments

@gustavofonseca
Copy link
Collaborator

gustavofonseca commented Feb 12, 2019

Deverá retornar uma lista ordenada dos registros que sofreram mudanças. A
ordenação será dada por meio do timestamp da aplicação. Apenas a versão mais
recente de cada registro é garantida de ser obtida, i.e., no caso de registros
atualizados e na sequência removidos a API poderá não mais fornecer os dados
no estado intermediário, antes da remoção.

Request:

GET /changes HTTP/1.1

Parâmetros:

  • since (string): Inicia a lista de resultados na mudança ocorrida no timestamp
    informado. Por padrão retornará desde a primeira mudança.
  • limit (number): Limita o total de resultados obtidos. Deve ser utilizado
    com o parâmetro since para iterar sobre os resultados de maneira paginada.
    O valor padrão é 500.

Response:

{
  "since": "2018-08-05T23:02:29.392990Z",
  "limit": 500,
  "results": [
    {
      "timestamp": "2018-08-05T23:02:29.392990Z", 
      "id": "documents/0034-8910-rsp-48-2-0347"
    },
    {
      "timestamp": "2018-08-05T23:09:09.569312Z", 
      "id": "documents/0034-8910-rsp-48-2-0347",
      "deleted": true
    }
  ]
}

A resposta é um objeto JSON com 3 atributos:

  • since: o valor do argumento de mesmo nome enviado na requisição. O valor padrão é uma string vazia;
  • limit: o valor do argumento de mesmo nome enviado na requisição. O valor padrão é 500;
  • results: um array que indica o recurso que sofreu a mudança. Note que,
    exceto para o caso de remoção do registro, não há qualquer indicação sobre a
    natureza da mudança (criação ou atualização), já que em ambos os casos
    é esperado que o cliente (re)obtenha o registro completo.
@gustavofonseca gustavofonseca added the help wanted Extra attention is needed label Feb 12, 2019
@gustavofonseca
Copy link
Collaborator Author

Exemplo de código que consumirá e API de mudanças em https://gist.github.com/gustavofonseca/363272c3745fa73ac32fe5ac673b783e

@robertatakenaka
Copy link
Member

@gustavofonseca parece OK

@robertatakenaka robertatakenaka added this to the Integração milestone Feb 13, 2019
@jamilatta jamilatta assigned jamilatta and unassigned jamilatta Feb 13, 2019
gustavofonseca pushed a commit to gustavofonseca/document-store that referenced this issue Feb 14, 2019
Relacionado com o ticket scieloorg#53.

A criação de um sistema de eventos é parte da infraestrutura desejada para a
implementação do ticket scieloorg#50, que resolve a questão da API de mudanças.

A idéia é que seja possível registrar _callbacks_ que serão executados sempre
que eventos conhecidos como, por exemplo, a criação de um novo documento ou a
sua remoção ocorrerem.
gustavofonseca pushed a commit to gustavofonseca/document-store that referenced this issue Feb 15, 2019
Relacionado com o ticket scieloorg#53.

A criação de um sistema de eventos é parte da infraestrutura desejada para a
implementação do ticket scieloorg#50, que resolve a questão da API de mudanças.

A idéia é que seja possível registrar _callbacks_ que serão executados sempre
que eventos conhecidos como, por exemplo, a criação de um novo documento ou a
sua remoção ocorrerem.
@gustavofonseca
Copy link
Collaborator Author

O PR #76 contém todo o trabalho realizado para esta atividade até o momento.

@jamilatta
Copy link
Contributor

Atividade realizada nos PRs: #95 e #76

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants