API REST
Por Alexandre Lumertz em 9 de novembro de 2023
IntermediárioVisão Geral
A estrutura do IVY gera endpoints REST prontos para todos os seus DocTypes.
Você também pode acionar métodos Python arbitrários via /api/method/<caminho_do_módulo>
.
Para testar em Postman, acesse:
https://documenter.getpostman.com/ivy-solucoes
Autenticação
Existem duas formas principais:
Token API
- No IVY, abra o Usuário ➔ Configurações ➔ Acesso à API ➔ Gerar chaves.
- Concatene
api_key:api_secret
. - Envie no cabeçalho:
GET /api/method/frappe.auth.get_logged_user HTTP/1.1Host: <subdomain>.ivyapp.com.brAuthorization: token <api_key>:<api_secret>Accept: application/json
O token herda as permissões do usuário gerado.
Usuário/Senha (Cookie-based)
Envie um POST para /api/method/login
:
POST /api/method/login HTTP/1.1Host: <subdomain>.ivyapp.com.brContent-Type: application/jsonAccept: application/json{"usr": "seu_usuario","pwd": "sua_senha"}
O cookie retornado deve ser usado em chamadas subsequentes.
Operações CRUD
Listagem de Registros
GET /api/resource/:doctype
Parâmetro | Descrição |
fields (opcional) | ["campo1","campo2"] — Campos a serem retornados |
filters (opcional) | [["field","=","value"]] — Filtragem AND |
or_filters | Filtragem OR |
order_by | "campo desc" ou "campo asc" |
limit_start | Offset |
limit_page_length | Quantidade de registros |
Exemplo:
GET /api/resource/ToDo?fields=["name","description"]&limit=10 HTTP/1.1Host: <subdomain>.ivyapp.com.brAccept: application/json
Resposta:
{"data": [{"name":"f765eef382","description":"..."},{"name":"2a26fa1c64","description":"..."}]}
Criação
POST /api/resource/:doctype HTTP/1.1Host: <subdomain>.ivyapp.com.brContent-Type: application/jsonAccept: application/json{"description": "Nova tarefa"}
Resposta:
{"data": {"name": "abc123","description": "Nova tarefa","docstatus": 0,"priority": "Medium"}}
Leitura
GET /api/resource/:doctype/:name HTTP/1.1
Atualização
PUT /api/resource/:doctype/:name HTTP/1.1Content-Type: application/json{"description": "Descrição atualizada"}
Exclusão
DELETE /api/resource/:doctype/:name HTTP/1.1
Retorna { "message": "ok" }
.
Chamada de Métodos Remotos
Para executar métodos Python:
GET /api/method/frappe.auth.get_logged_user HTTP/1.1
Para operações que alteram dados, usePOST
e o framework fazcommit()
automaticamente.
Upload de Arquivos
curl -X POST \http://<subdomain>.ivyapp.com.br/api/method/upload_file \-H "Authorization: token <key>:<secret>" \-F file=@/caminho/para/arquivo.png
Esse artigo foi útil?
Mais artigos sobre Recursos