Skip to content
Jacson edited this page May 24, 2016 · 14 revisions

API Delibera

Plugins necessários para a configuração, que já estão mapeados como submodulos do wp-mu da redelivre:

  • wp-api
  • wp-api-enabler

Uma vez que o wp-api-enabler esta habilitado é necessários definir quais meta informações são necessárias, os metas abaixo são acessiveis em todas as pautas diretamente usando o nome abaixo:

  • prazo_votacao
  • prazo_relatoria
  • prazo_validacao
  • prazo_discussao
  • prazo_eleicao_relator
  • delibera_numero_comments_votacao
  • delibera_numero_comments_relatoria
  • delibera_numero_comments_validacao
  • delibera_numero_comments_discussao
  • delibera_numero_comments_eleicao_relator
  • delibera_flow
  • delibera_curtiram
  • delibera_numero_curtir
  • delibera_descurtiram
  • delibera_numero_discordar
  • situacao
  • data_resolucao

Para o futuro: Mas encontramos este conteudo que mostra como criar uma api do zero, parece que ele foge totalmente da nossa proposta, mas é uma alternativa:

http://wordpress.stackexchange.com/questions/154843/wp-api-restfull-json-and-post-meta

Usando a API

Note que o base url do wp-api é: /wp-json/wp/v2/...

Para listar as pautas

/pautas

Para lista apenas uma pauta

/pauta/:id

  • id - identificador da pauta
  • date - data de criação
  • date_gmt - data de criação da pauta no horario global
  • guid.rendered - url...
  • modified - data de modificação da pauta
  • modified_gmt - data de modificação da pauta no horario global
  • slug - apelido da pauta
  • type - tipo de conteudo
  • link - link para pauta no wp
  • title.rendered - titulo da pauta
  • content.rendered - conteudo da pauta
  • excerpt.rendered - sumário do conteudo
  • author - id do usuário que criou a pauta (dono da pauta)
  • featured_media - ?
  • comment_status - se a pauta esta aberta ou fechada para comentários - open - close (sempre open)
  • ping_status - ?
  • tags - tags da pauta
  • _links - links da pauta
  • _links.self.href - o proprio link da pauta
  • _links.collection.href - link para a lista com todas as pautas
  • _links.about.href - descrição do tipo pauta
  • _links.author.href - link para o usuário
  • _links.replies.href - link para todos os comentários de uma pauta
  • prazo_votacao - data final da votação
  • prazo_relatoria - data final da relatória
  • prazo_validacao - data final da validação (define o prazo para a proposta de pauta virar pauta )
  • prazo_discussao - data final para discução em torno da pauta
  • -prazo_eleicao_relator - data final para eleição do relator
  • delibera_numero_comments_votacao - numero de votos na pauta
  • delibera_numero_comments_relatoria - numero de propostas criadas durante a relatoria
  • delibera_numero_comments_validacao - numero de validações
  • delibera_numero_comments_discussao - numero de propostas de encaminhamento geradas na etapa de discussão
  • -delibera_numero_comments_eleicao_relator - numero total de votos durante o processo de relatoria
  • delibera_flow - fluxo da pauta
  • delibera_curtiram - vetor com ao menos os nomes dos usuários
  • delibera_numero_curtir - numero de curtidas da pauta
  • delibera_descurtiram - vetor com ao menos os nomes dos usuários
  • delibera_numero_discordar - numero de usuários que discordaram
  • delibera_numero_seguir - numero de usuários que seguiram a pauta
  • delibera_seguiram - lista dos usuários que seguiram a pauta
  • situacao - status da pauta
  • data_resolucao - quando a pauta acabou, ou seja se todo mundo votou a pauta já fecha (acabou)

Legenda: colocamos - nos campos que ainda não estão desenvolvidos;

Para listar todos os comentários de uma pauta

/comments?post=:id

Abaixo descrevemos as infos contidas em cada um dos comentários:

  • id - numero indentiicador do comentário
  • post - o id do post
  • parent - ?
  • author - id do autor
  • author_name - nome do autor
  • author_url - url do autor
  • date - data da postagem do comentário
  • date_gmt - data global da postagem do comentário
  • content.rendered - conteudo do comentário
  • link - link do comentário no wp
  • status - status do comentário (approved - aprovado...)
  • type - tipo do conteudo - comentário
  • author_avatar_urls - url dos avatares do author do comentário
  • _links.self - link para o comentário atual, ou para este comentário
  • _link.collection - link para todos os comentários
  • _link.author - link para o json do usuário que realizou o comentário
  • _link.up.post_type - informação do tipo conteudo (deve ser pauta)
  • _link.up.href - link para o json da pauta dona deste comentário

Para listar todas as taxonomias publicas

/taxonomies

Para listar os conteudos de uma taxonomia especifica:

/taxonomies/

  • slug da taxonomia - ex.: category, post_tag
  • name - nome de Category
  • slug - apelido de category
  • description - descrição de category
  • types - tipos de conteudo que utilizão category
  • hierarchical - se a taxonomia suporta hierarquia ou não
  • _links - alguns links
  • _links.collection.href - acesso para a lista de taxonomias

Para pegar custom terms necessário um plugin: https://br.wordpress.org/plugins/wp-rest-api-all-terms/ resolvemos isso por meio do plugin, incluindo os campos que precisamos como resposta da rest

Para listar os usuários

/users

Para listar apenas um usuário

/users/:id

Campos

  • id - identificador do usuário
  • name - nome do usuário
  • url - url do usuário
  • description - descrição do usuário
  • link - link para a página do usuário no wp
  • slug - apelido do usuário
  • avatar_urls - urls dos usuários
  • _links - links do usuário ** _links.self.href - link este usuário ** _links.collection.href - acessar coleção de usuários

Para curtir uma pauta

/pautas/:pautaId/like

Como testar o like

curl —user user1:senha1 -X POST http://teste3.redelivre.ethymos.com.br/wp-json/wp/v2/pautas/17024/like

Exemplos

Exemplo de uma pauta ainda sem nenhum meta-post:

{
  "id": 12,
  "date": "2016-05-17T17:23:54",
  "date_gmt": "2016-05-17T17:23:54",
  "guid": {
    "rendered": "http://redelivre.pure.za/?post_type=pauta&p=12"
  },
  "modified": "2016-05-17T17:23:54",
  "modified_gmt": "2016-05-17T17:23:54",
  "slug": "pauta-fechada",
  "type": "pauta",
  "link": "http://redelivre.pure.za/blog/pauta/pauta-fechada/",
  "title": {
    "rendered": "Pauta Fechada"
  },
  "content": {
    "rendered": "<p>vamos lá</p>\n"
  },
  "excerpt": {
    "rendered": "<p>vamos lá</p>\n"
  },
  "author": 1,
  "featured_media": 0,
  "comment_status": "open",
  "ping_status": "open",
  "tags": [],
  "_links": {
    "self": [
      {
        "href": "http://redelivre.pure.za/wp-json/wp/v2/pautas/12"
      }
    ],
    "collection": [
      {
        "href": "http://redelivre.pure.za/wp-json/wp/v2/pautas"
      }
    ],
    "about": [
      {
        "href": "http://redelivre.pure.za/wp-json/wp/v2/types/pauta"
      }
    ],
    "author": [
      {
        "embeddable": true,
        "href": "http://redelivre.pure.za/wp-json/wp/v2/users/1"
      }
    ],
    "replies": [
      {
        "embeddable": true,
        "href": "http://redelivre.pure.za/wp-json/wp/v2/comments?post=12"
      }
    ],
    "version-history": [
      {
        "href": "http://redelivre.pure.za/wp-json/wp/v2/pautas/12/revisions"
      }
    ],
    "https://api.w.org/attachment": [
      {
        "href": "http://redelivre.pure.za/wp-json/wp/v2/media?parent=12"
      }
    ],
    "https://api.w.org/term": [
      {
        "taxonomy": "post_tag",
        "embeddable": true,
        "href": "http://redelivre.pure.za/wp-json/wp/v2/tags?post=12"
      }
    ]
  }
}

Criando Pautas

curl -H "Content-Type: application/json" --user user:senha -X POST http://exemplo.com.br/wp-json/wp/v2/pautas -d '{"title":"Nova Pauta","tema":"1","content":"Mussum Ipsum, cacilds vidis litro abertis. Manduma pindureta quium dia nois paga. Sapien in monti palavris qui num significa nadis i pareci latim. Diuretics paradis num copo é motivis de denguis. Casamentiss faiz malandris se pirulitá."}'

Onde

"tema":"1" Taxonomia = tema e id do term = 1

Like/Unlike

Pautas:

curl —user user:senha -X POST http://exemplo.com.br/wp-json/wp/v2/pautas/1/like

curl —user user:senha -X POST http://exemplo.com.br/wp-json/wp/v2/pautas/1/unlike

"pautas/1" onde pautas é o tipo e 1 é o id da pauta

Comentários:

curl —user user:senha -X POST http://exemplo.com.br/wp-json/wp/v2/comments/1/like

curl —user user:senha -X POST http://exemplo.com.br/wp-json/wp/v2/comments/1/unlike

"comments/1" onde comments é o tipo (comment) e 1 é o id do comentário