Developer Platform

Construieste cu BAPP API

Integreaza platforma BAPP in aplicatiile tale folosind SDK-urile oficiale sau CLI-ul din terminal. Autentificare, CRUD, paginare, taskuri, upload fisiere — totul printr-un singur client.

Cum functioneaza

Fiecare SDK ofera o interfata consistenta pentru a interactiona cu orice content type din platforma BAPP.

Autentificare

Doua metode de autentificare: API Token (recomandat pentru integrari server-side) sau Bearer JWT/OAuth.

# API Token — tenant-ul e inclus in token
client = BappApiClient(token="your-api-key")

# Bearer JWT/OAuth — specifica tenant-ul manual
client = BappApiClient(bearer="eyJhbG...", tenant="1")

Operatii CRUD

Listeaza, creaza, actualizeaza si sterge entitati din orice content type folosind aceeasi interfata simpla.

# Listeaza cu filtre si paginare
items = client.list("core.country", {"search": "Romania"})
print(items.count)  # total rezultate

# Creaza
client.create("core.country", {"name": "Test"})

# Actualizeaza partial
client.patch("core.country", "42", {"code": "RO"})

Taskuri si Export

Ruleaza taskuri sincron sau asincron. Pentru taskuri long-running, SDK-ul polleaza automat pana la finalizare.

# Task simplu
result = client.run_task("myapp.quick_task")

# Task long-running — polleaza automat
result = client.run_task_async(
    "myapp.export_report",
    {"format": "CSV"}
)
print(result["file"])  # URL fisier generat

Upload fisiere

Trimite fisiere prin multipart/form-data. SDK-ul detecteaza automat campurile de tip fisier si schimba encoding-ul.

# Fisierele sunt auto-detectate
client.create("myapp.document", {
    "name": "Report",
    "file": open("report.pdf", "rb")
})

Metode disponibile

Toate SDK-urile implementeaza aceleasi metode, cu denumiri adaptate conventiilor fiecarui limbaj.

Metoda Descriere HTTP
me() Profilul utilizatorului curent GET
list(ct, filters?) Lista entitati cu paginare si filtre GET
get(ct, id) O singura entitate dupa ID GET
create(ct, data) Creeaza entitate noua POST
update(ct, id, data) Actualizare completa (PUT) PUT
patch(ct, id, data) Actualizare partiala PATCH
delete(ct, id) Sterge entitate DELETE
list_introspect(ct) Schema campuri pentru lista GET
detail_introspect(ct) Schema campuri pentru detaliu/formular GET
run_task(code, payload?) Ruleaza un task sincron GET/POST
run_task_async(code, payload?) Ruleaza task long-running cu polling automat POST + poll
CLI Tool

BAPP CLI

Interactioneaza cu platforma BAPP direct din terminal. CRUD, taskuri, documente, introspectie — totul dintr-o singura comanda.

Instalare

macOS / Linux

curl -fsSL https://applications.bapp.ro/cli/install.sh | sh

Windows (PowerShell)

irm https://applications.bapp.ro/cli/install.ps1 | iex
Go binary macOS / Linux / Windows Auto-update

Configurare multi-profil

Defineste mai multe profile pentru medii diferite (productie, staging, dev) si comuta intre ele instant.

# Adauga un profil
bapp config add production \
  --host https://panel.bapp.ro/api \
  --token YOUR_API_TOKEN \
  --tenant 5 --app myapp

# Seteaza profilul implicit
bapp config use production

# Sau foloseste un profil ad-hoc
bapp --profile staging list myapp.product

Operatii CRUD

Listeaza, creaza, actualizeaza si sterge entitati din orice content type, direct din terminal.

# Listeaza cu filtre
bapp list myapp.product --filter status=active

# Obtine o entitate
bapp get myapp.product 42

# Creaza (JSON inline sau stdin)
bapp create myapp.product --data '{"name":"Widget"}'

# Actualizeaza partial
bapp patch myapp.product 42 --data '{"price":99}'

# Sterge cu confirmare
bapp delete myapp.product 42

Taskuri si Documente

Ruleaza taskuri, genereaza si descarca documente in PDF, HTML sau JPG.

# Listeaza taskurile disponibile
bapp task list

# Ruleaza un task cu payload
bapp task run myapp.export --data '{"format":"csv"}'

# Descarca un document PDF
bapp document download company_order.order 42 \
  -f factura.pdf

Introspectie si AI Agents

Comanda describe genereaza schema completa a unui content type — ideala pentru integrarea cu agenti AI.

# Schema completa: campuri, filtre, exemple
bapp describe myapp.product

# Introspectie raw pentru lista
bapp introspect list myapp.product

# Output JSON — perfect pentru piping
bapp list myapp.product --output pretty
Comanda Descriere
bapp me Profilul utilizatorului autentificat
bapp list <ct> Listeaza entitati cu filtre optionale
bapp get <ct> <id> Obtine o entitate dupa ID
bapp create <ct> Creaza entitate noua (--data sau stdin)
bapp patch <ct> <id> Actualizare partiala
bapp delete <ct> <id> Sterge cu confirmare (--yes pentru skip)
bapp describe <ct> Schema completa: campuri, filtre, exemple operatii
bapp task run <code> Executa un task cu payload optional
bapp document download <ct> <id> Descarca document renderizat (PDF/HTML/JPG)
bapp config add <name> Adauga/actualizeaza un profil de conexiune
bapp self-update Actualizeaza CLI-ul la ultima versiune

Incepe sa construiesti acum

Genereaza un API token din setarile contului tau BAPP si instaleaza SDK-ul in limbajul preferat.