Como obter e atualizar dados de relação via API REST
Neste tutorial, trabalhamos com a aplicação Advanced REST Client, mas você pode usar qualquer aplicação que funcione com REST API.
API REST pública para visão geral das configurações de relações
Navegue até o Painel do WordPress> JetEngine> guia Relações e clique no botão “ Editar ” ao lado da relação necessária.
Trabalharemos com a relação “Usuários (Guias) > Postagens (Tours)”.
Vá para a alternância Registrar obter itens/item REST API Endpoint e habilitá-lo.
No campo Endpoint URL , você verá três URLs que podem ser copiadas e usadas para a conexão entre dois sites:
- GET – /wp-json/jet-rel/<relation ID> — recupera todos os dados da relação selecionada;
- GET – /wp-json/jet-rel/<relation ID>/children/<item ID> — recupera itens filhos para o ID do item selecionado;
- GET – /wp-json/jet-rel/<relation ID>/parents/<item ID> — recupera itens pais para o ID do item selecionado.
No campo Capacidade de Acesso , você pode escolher quem terá permissão para acessar esses itens relacionados. Por padrão, não há restrições, mas se você inserir, por exemplo, o recurso “edit_pages”, apenas editores e administradores poderão editá-los.
Ative a alternância Registrar atualização do endpoint da API REST .
POST – /wp-json/jet-rel/<ID de relação> — especifique os dados necessários. O corpo da postagem de consulta deve conter os seguintes dados:
{
parent_id: ID/IDs,
child_id: ID/IDs,
context: child/parent,
store_items_type: replace/update
}
Neste trecho de código, você precisa inserir os ID/IDs dos itens/itens pai, ID/IDs dos itens/itens filhos; o contexto pode ser “filho” ou “pai”, onde “filho” significa atualizar o item filho do pai e “pai” – atualizar o item pai do filho. A linha store_items_type pode ser “replace” ou “update”, onde “replace” exclui os elementos existentes e insere os novos ao atualizar, e “update” adiciona os novos elementos aos existentes.
Ao terminar, clique no botão “Atualizar Relação” .
Atualizar dados de relação via API REST
Mostraremos como atualizar e substituir itens relacionados usando o aplicativo Advanced REST Client como exemplo.
Selecionamos o método “POST” e inserimos o URL do endpoint da relação no campo URL de solicitação .
Na aba Headers , adicionamos um Header com o nome “Content-Type” e o valor “application/json” . Se desejar, você também pode adicionar o cabeçalho “Autorização” .
Atualizando o item filho do pai
Decidimos adicionar um novo passeio infantil ao guia dos pais. Agora, o usuário atual não possui postagens relacionadas.
Na aba Corpo , deixamos o tipo de conteúdo do corpo “JSON” padrão e a visualização do Editor “Entrada bruta” .
Na área de texto a seguir, inserimos esse código JSON:
{
"parent_id": 2,
"child_id": 1310,
"context": "child",
"store_items_type": "update"
}
Onde “2” é o ID de um guia dos pais; “1310” é um ID de um passeio infantil que foi criado anteriormente e que queremos adicionar ao guia; “filho” indica que queremos atualizar o item filho do pai. Por último, “atualizar” é um comando que irá atualizar a relação e adicionar um novo item em vez de substituir o antigo.
Clique no botão “Enviar a solicitação” . A solicitação foi bem-sucedida, então adicionamos um novo item filho ao objeto pai.
Atualizando metacampos de relação
Você também pode atualizar o metacampo de relação por meio da API REST.
Adicionamos um novo traço ao código:
"meta": {"tour_start_date" : "2024-06-24", "_pricing": "300"}
Onde “tour_start_date” e “_pricing” são metacampos “Texto” e “Data” da relação e “2024-06-24” e “300” são valores. Você pode atualizar todos os tipos de metacampos disponíveis para relações.
Clique no botão “ Enviar a solicitação ”.
Para verificar os resultados, clique no botão “ Editar Meta” próximo à postagem secundária conectada.
Como podemos ver, os valores foram salvos através da API REST.
O plugin JetEngine geralmente salva datas no banco de dados no formato AAAA-MM-DD. Antes de atualizar, você pode verificar adicionando valor ao metacampo de data no site clicando no botão “ Editar Meta ”. Então você terá certeza em que formato deverá inserir as datas.
Salve os metadados e insira o URL do endpoint na barra de pesquisa.
Aqui você pode ver em que formato a data é salva. Portanto, ao atualizar ou substituir os itens da relação, insira o valor no mesmo formato.
Substituindo itens de relacionamento
Se quiser substituir todos os itens relacionados por um novo, você precisa digitar “replace” em vez de “update”:
"store_items_type": "replace",
Após pressionar o botão “ Enviar a solicitação ”, o novo item relacionado substituirá os antigos.
Atualizando o item pai do filho
Agora queremos adicionar um novo guia ao passeio; em outras palavras, atualize os itens pais (usuários) do objeto filho (postagem).
O código JSON é semelhante ao que usamos para adicionar um item filho ao objeto pai, mas você precisa alterar o contexto:
{
"parent_id": 3,
"child_id": 710,
"context": "parent",
"store_items_type": "update",
"meta": {"tour_start_date" : "2024-08-13", "_price_": "400"}
}
O usuário pai com o ID “3” foi adicionado à postagem com o ID “710”.
Adicionando vários filhos ao pai ou vice-versa
Para adicionar vários filhos ao pai, você precisa colocar IDs no array:
"child_id": [710, 1174, 653, 1221, 649],
Clique no botão “Enviar a solicitação” e prossiga para a página principal.
Novos itens filhos foram adicionados com sucesso ao objeto pai.
Você também pode adicionar vários pais a um filho colocando vários IDs de pais na matriz.
Também é possível conectar vários pais e filhos, de modo que cada pai no código terá cinco filhos.
Isso é tudo. Agora você sabe como obter a lista de dados de relação e atualizar ou substituir os itens filhos ou pais via REST API com o plugin JetEngine WordPress.