Blog sobre WordPress
No Result
View All Result
  • Web Stories
  • Desenvolvimento
  • Infra
  • Mobile
  • Performance
  • Segurança
  • SEO
  • E-commerce
Cadastrar e-mail
  • Web Stories
  • Desenvolvimento
  • Infra
  • Mobile
  • Performance
  • Segurança
  • SEO
  • E-commerce
No Result
View All Result
Blog sobre WordPress
No Result
View All Result

Início » Desenvolvimento WordPress » REST API: Como recurso do WordPress 4.5

REST API: Como recurso do WordPress 4.5

Leandro Vieira by Leandro Vieira
7 anos ago
Reading Time: 3 min
0
Compartilhe no FacebookCompartilhe no LinkedIn
Audio

A versão do WordPress 4.5 adicionou a pouco tempo a possibilidade de implementação de uma REST API utilizando apenas recursos contidos na instalação. Isso foi magnífico! Agora podemos escrever aplicações que consomem apenas dados, o que é ótimo quando estamos falando de plataformas diferentes não só da web, mas assim como na vida nem tudo são flores, essa novidade traz consigo alguns efeitos colaterais resultantes desta “flexibilidade” que a comunidade está correndo atrás para resolver. Neste artigo iremos abordar um ou mais destes pontos e opinar a respeito.

Conteúdo relacionado

Como criar Web Stories no WordPress

Como criar blocos reutilizáveis no Gutenberg

Como habilitar recursos ocultos do Gutenberg no tema WordPress

Saiba um pouco sobre como o impossível ficou para trás 

Click To Tweet

O problema

Em primeiro lugar, a forma como as requisições são compreendidas pelo servidor. Com a nova maneira de receber estes dados a partir do WordPress 4.5, pela interface REST API, abriram-se várias possibilidades de haver problemas relacionados a forma que esses dados são processados, por exemplo, existem requisições GET, POST, PUT, JSON que são misturadas na hora de receber os dados de consulta.

A possibilidade além de ser atraente a primeira vista também é perigosa, uma vez que esses dados vem de uma forma ou de outra, dependendo do tipo de requisição. Em baixo nível o WordPress 4.5 possui funções cujo objetivo é “cortar” esses dados passados para a interface chamando os métodos nativos “wp_unslash()” e “wp_slash()” . Isso significa que os dados passados pelas superglobais $_* podem ser passados diretamente, mas outros tipo de dados necessitam ser “cortados” pelo “wp_slash()”.

Por exemplo, os seguintes dados são os mesmos porém passados para interface de forma diferente;

// JSON body:

{“name”: “Paul”}

// Form-data ($_POST)

name=Paul

// ambos resultam em

$request->get_param(‘name’) === ‘Paul’;

Porém, caso os dados possuírem “\” (slashes, codificação padrão usada pelo HTTP), a chamada se torna inconsistente levando a efeitos colaterais como mostrados abaixo.

// JSON body:

{“name”: “Paul\Doe”}

// resulta em

$request->get_param(‘name’) === ‘Paul\Doe’;

// Form-data ($_POST) (“\” após codificado resulta em %3D)

name=Paul%3DDoe

// resulta em(devida forma que o PHP trata a entrada devido as aspas)

$request->get_param(‘name’) === ‘Paul\\Doe’

Isso quer dizer que a aplicação precisa entender a forma que os dados chegam até ela para manipular com consistência a resposta. Para deixar de forma clara:

WordPress 4.5 REST API

Dados enviados pela query string($_GET, $request->get_query_params()) são “cortados”.

Dados enviados pelo corpo da requisição utilizando form-encoded ($_POST, $request->get_body_params()) são “cortados” para requisições do tipo POST e não são “cortados” para requisições do tipo PUT e DELETE .

Dados enviados no corpo da requisição codificados como objeto JavaScript JSON-encoded ($request->get_json_params()), não são “cortados”.

Dados enviados pela URL ($request->get_url_params()), não são “cortados” .

Dados enviados e codificados por padrão ($request->get_default_params()), são “cortados”.

A solução para a REST API no WordPress 4.5

A comunidade WordPress considera dados “cortados” um grande erro e estão trabalhando para garantir que apenas dados não “cortados” sejam aceitos pela interface. Se você estiver usando alguma função (métodos como wp_insert_post, wp_update_post, update_post_meta, update_user_meta, wp_insert_term, wp_insert_user, esperam que o conteúdo seja cortado) que espere um dado que seja “cortado”, você deve antes passar estes dados pelo método “wp_slash()“.

A solução definitiva para o problema do REST API será implementada na versão 4.5 do CMS mais popular do mundo, devido à quantidade de plugins que já utilizam o WordPress REST API, muitas mudanças virão com atualizações mínimas, antes da versão final. Fique ligado e sempre use “wp_slash()“, caso você esteja usando alguma das funções mencionadas no retorno de dados de sua API.

Você também pode gostar de ler o artigo abaixo.

Tags: releaseREST APIWordPress 4.5
Share8Share1SendShare
Previous Post

Nova página de erro de comentário ganha navegação

Next Post

Mais novidades na gestão de comentários do WordPress 4.5

Leandro Vieira

Leandro Vieira

Uma das grandes referências de WordPress no Brasil, entusiasta e evangelista da plataforma. Fundador e CEO da Apiki, empresa especializada no desenvolvimento web com WordPress.

Related Posts

Anatomia do Gutenberg, o editor do WordPress
Desenvolvimento WordPress

Anatomia do Gutenberg, o editor do WordPress

13 de janeiro de 2021
As vantagens do editor Gutenberg para WordPress
Desenvolvimento WordPress

As vantagens do editor Gutenberg para WordPress

19 de agosto de 2020
Metodologia BPM para melhoria de processos dentro da empresa
Desenvolvimento WordPress

Metodologia BPM para melhoria de processos dentro da empresa

15 de janeiro de 2021
Scrum e PMBOK - aliados na gestão de projetos
Desenvolvimento WordPress

PMBOK e Scrum: grandes aliados na gestão de projetos

15 de janeiro de 2021
Next Post
WordPress 4.5 - gestão de comentários

Mais novidades na gestão de comentários do WordPress 4.5

menu de personalização no WordPress 4.5

Menu de Personalização com novidades

Deixe um comentário Cancelar resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Receba no seu e-mail uma série de conteúdos sobre Infra para WordPress.
  • Este campo é para fins de validação e não deve ser alterado.

Facebook LinkedIn Instagram Twitter Youtube Github RSS

Sobre a Apiki

Empresa especializada em WordPress com três unidades de negócios.

  1. Design e Desenvolvimento;
  2. Infra e Hospedagem;
  3. Suporte e manutenção.

Em resumo, só fazemos uma coisa em WordPress: tudo.

Páginas do Apiki.com

  • Apiki.com
  • Sobre a Apiki
  • Hospedagem
  • Desenvolvimento
  • UX & UI para WordPress
  • Growth em WordPress
  • Suporte
  • Atendimento

Páginas do Blog

  • Sobre
  • Newsletter
  • Desenvolvimento WordPress
  • Segurança para WordPress
  • WordPress Mobile
  • Infra para WordPress
  • WordPress SEO
  • WordPress Performance
  • E-commerce

© 2020 Apiki - Empresa especializada em WordPress.

No Result
View All Result
  • Web Stories
  • Desenvolvimento
  • Infra
  • Mobile
  • Performance
  • Segurança
  • SEO
  • E-commerce

© 2020 Apiki - Empresa especializada em WordPress.