×

Solicite uma demonstração!

Por Alexandre Lumertz em 9 de novembro de 2023
Intermediário

Visã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

  1. No IVY, abra o Usuário ➔ ConfiguraçõesAcesso à APIGerar chaves.
  2. Concatene api_key:api_secret.
  3. Envie no cabeçalho:
GET /api/method/frappe.auth.get_logged_user HTTP/1.1
Host: <subdomain>.ivyapp.com.br
Authorization: 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.1
Host: <subdomain>.ivyapp.com.br
Content-Type: application/json
Accept: 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âmetroDescrição
fields (opcional)["campo1","campo2"] — Campos a serem retornados
filters (opcional)[["field","=","value"]] — Filtragem AND
or_filtersFiltragem OR
order_by"campo desc" ou "campo asc"
limit_startOffset
limit_page_lengthQuantidade de registros

Exemplo:

GET /api/resource/ToDo?fields=["name","description"]&limit=10 HTTP/1.1
Host: <subdomain>.ivyapp.com.br
Accept: application/json

Resposta:

{
 "data": [
   {"name":"f765eef382","description":"..."},
   {"name":"2a26fa1c64","description":"..."}
 ]
}


Criação

POST /api/resource/:doctype HTTP/1.1
Host: <subdomain>.ivyapp.com.br
Content-Type: application/json
Accept: 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.1
Content-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, use POST e o framework faz commit() 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



Mais artigos sobre Recursos



Mais artigos sobre Recursos
Comentários

No comments yet.

Adicionar um comentário
Ctrl+Enter para adicionar comentário