Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Manual REST 2Way Brasil
Manual REST 2Way Brasil
===================
Este é o **Manual REST 2Way Brasil**.
Produzido por :
> Jônatas Alves
<jonatasrenan@gmail.com>
(31) 9947-68229.
Última atualização 18/Abril/2017.
Índice
----------
[TOC]
**0** Pré-definições
-----------
O Site 2Way Brasil utiliza Wordpress.
> **Autenticação modo usuário**
> | | |
> -|-|
> | **URL** | http://sales-dev.2waybrasil.com.br/wp-admin
> | **Usuário** | dev
> | **Senha** | 8@Ugxq^aQ)XPsuszIcVOGG!G
<!-- -->
> **Autenticação API REST**
> | | |
> -|-|
> | **Tipo** | Basic {base64_encode(username:password)}
> | **Usuário** | 2way
> | **Senha** | o8GJ pdoE 2Kvy 80Mf tXwn 4nJa
> | **Base64** | Basic MndheTpvOEdKIHBkb0UgMkt2eSA4ME1mIHRYd24gNG5KYQ==
**1** Introdução
-------------
Os produtos do site da 2Way seguem os seguintes padrões de acesso:
### **1.1** Acesso front-end através do slug do produto
**SLUG** é o campo-chave texto de um determinado produto que aparece no frontend.
```html
http://sales-dev.2waybrasil.com.br/<SLUG>/
```
> **Exemplo**
>```html
>http://sales-dev.2waybrasil.com.br/gewiss-gw62234/
>tem o slug = “gewiss-gw62234”
>```
### **1.2** Acesso Backend através do id do produto
**ID** é o campo chave inteiro de um determinado produto que aparece no backend.
```html
http://sales-dev.2waybrasil.com.br/wp-admin/post.php?post=<ID>&action=edit
```
> **Exemplo**
>```html
>http://sales-dev.2waybrasil.com.br/wp-admin/post.php?post=100456&action=edit
>```
>tem o id = 100456
<!-- -->
> **Nota**
> : Tanto slug quanto o id são chave únicas.
> : Os campos **id** e **slug** direcionam as requisições REST.
----------
**2** Requisições
-------------------
### **2.0** URLs Base
#### **2.0.1** Produção (Ainda não foi feito o Deploy)
```html
http://vendas.2waybrasil.com.br/wp-json/
```
####**2.0.2** Desenvolvimento
```html
http://sales-dev.2waybrasil.com.br/wp-json/
```
> **Nota**
> : Todos os exemplos do manual utilização a url base do ambiente de desenvolvimento.
### **2.1** Obter campos de um produto utilizando seu ID único:
####**2.1.1** End point e verbo REST
```js
GET /wp/v2/product/<ID>
```
```js
GET http://sales-dev.2waybrasil.com.br/wp-json/wp/v2/product/<ID>
```
> **Exemplo**
> ```shell
curl http://sales-dev.2waybrasil.com.br/wp-json/wp/v2/product/100456
> ```
#### **2.1.2** Retorno
O Retorno é um json contendo os campos do produto.
> **Campos mais importantes**
> - title: Título do produto
> - partnumber: Partnumber
> - manufacturer: Fabricante
> - content: Corpo principal do texto
> - id: Id do produto
> - slug: Slug do produto
> - link: Link do produto
> - status: Estado do produto *{publish, future, draft, pending, private}*
<!-- -->
> **Exemplo**
> ```js
{
"id": 100456,
"date": "2017-04-17T18:06:48",
"date_gmt": "2017-04-17T21:06:48",
"guid": {
"rendered": "http://sales-dev.2waybrasil.com.br/?post_type=product&#038;p=100456"
},
"modified": "2017-04-17T18:06:48",
"modified_gmt": "2017-04-17T21:06:48",
"slug": "gewiss-gw62234",
"status": "publish",
"type": "product",
"link": "http://sales-dev.2waybrasil.com.br/gewiss-gw62234/",
"title": {
"rendered": "GEWISS GW62234"
},
"content": {
"rendered": "<p>GEWISS<br />\nGW62234</p>\n",
"protected": false
},
"template": "",
"partnumber": "GW62234",
"manufacturer": "GEWISS",
(...)
}
> ```
###**2.2** Obter um produto do site pesquisando pelo seu slug.
#### **2.2.1** End Point e verbo REST
```js
GET /wp/v2/products?slug="<SLUG>"
```
```js
GET http://sales-dev.2waybrasil.com.br/wp-json/wp/v2/product?slug="<SLUG>"
```
> **Exemplo**
> ``` bash
curl http://sales-dev.2waybrasil.com.br/wp-json/wp/v2/product?slug="gewiss-gw62234"
> ```
#### **2.2.2** Retorno
O retorno da busca por slug é idêntico ao json retornado através da requisição via id.
> **Nota**
>
> - Será utilizado quando não se sabe o id de um produto, porém se conhece seu slug.
### **2.3** Criar um novo produto
#### **2.3.1** End point e verbo REST
```js
POST /wp/v2/product
```
```js
POST http://sales-dev.2waybrasil.com.br/wp-json/wp/v2/product
```
> **Nota**
> : O **slug** pode ser gerado automaticamente pelo wp através do saneamento do título.
> : O **status** deve ser "publish" para que o produto seja visível no site. Caso o campo não for passado no corpo da requisição, o produto será adicionado como rascunho (*draft*).
<!-- -->
> **Exemplo**
> Criar um produto com os seguintes campos:
> | | |
> -|-|
> | Título |"ALLEN BRADLEY/ROCKWELL 1492-PDM3141"
> | Descrição | "TERMINAL DE CONTATO PARA DISJUNTOR - CORRENTE 115A"
> | Fabricante | "ALLEN BRADLEY/ROCKWELL"
> | Partnumber | 1492-PDM3141"
> | Status | Publicado (*publish*)
> ```bash
curl -X POST http://sales-dev.2waybrasil.com.br/wp-json/wp/v2/product -d
'{
"title":"ALLEN BRADLEY/ROCKWELL 1492-PDM3141",
"content": "TERMINAL DE CONTATO PARA DISJUNTOR - CORRENTE 115A",
"manufacturer": "ALLEN BRADLEY/ROCKWELL"
"partnumber": "1492-PDM3141",
"status": "publish"
}'
> ```
#### **2.3.2** Retorno
O retorno da criação é idêntico ao json retornado através da requisição GET por id.
### **2.4** Editar um produto utilizando seu id
#### **2.4.1** End point e verbo REST
```js
POST /wp/v2/product/<id>
```
```js
POST http://sales-dev.2waybrasil.com.br/wp-json/wp/v2/product/<ID>
```
> **Exemplo**
> Alterar o título do produto com id=100470 para "Meu novo título"
> ```bash
> curl -X POST http://sales-dev.2waybrasil.com.br/wp-json/wp/v2/product/100470 -d '{"title":"Meu novo título"}'
> ```
#### **2.4.2** Retorno
O retorno da edição é idêntico ao json retornado através da requisição GET por id.
### **2.5** Remover um produto
#### **2.5.1** End point e verbo REST
```json
DELETE /wp/v2/product/<id>?force=true
```
```json
DELETE http://sales-dev.2waybrasil.com.br/wp-json/wp/v2/product/<ID>?force=true
```
> **Nota**
> : O parâmetro **force** indica que produto será deletado sem ir para a lixeira do wordpress.
<!-- -->
> **Exemplo**
> Remover o produto com id=100472
> ```bash
> curl -X DELETE http://sales-dev.2waybrasil.com.br/wp-json/wp/v2/product/100472?force=true
> ```
#### **2.5.2** Retorno
O retorno da deleção é idêntico ao json retornado através da requisição GET por id.
----------
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.