GraphQL
Meister1 utilizza un'API GraphQL. GraphQL è un linguaggio di query che permette al client di determinare quali dati sono necessari.
Qui mostreremo brevemente come appare una richiesta HTTP in GraphQL. Esamineremo anche alcuni casi d'uso tipici.
Endpoint: https://api.meister1.com/graphql
attenzione
Per le query deve essere utilizzato un header Authorization con il accessToken (vedi Autorizzazione)
Generale
In sostanza, ogni richiesta ha lo stesso aspetto. Si tratta di una richiesta POST. Lo schema atteso come risposta è definito nel corpo.
Richiesta
query {
viewer {
id
email
}
}
cURL
curl 'https://api.meister1.com/graphql' -H 'Content-Type: application/json' \
--data-binary '{"query":"query {\n viewer {\n id\n email\n }\n}"}' --compressed
Risposta
{
"data": {
"viewer": {
"id": "VSFlcgox",
"email": "user@meister1.de"
}
}
}
Recupero di un lead
Richiesta
query {
lead(id: 123456789) {
leadId
salutation
firstName
lastName
address {
street
streetNo
city
zip
lat
lng
}
email
phone
distance
salesStatus
assignee {
firstName
lastName
}
transactions {
flowInputFieldGroups {
label
name
fields {
name
label
values {
label
name
}
}
}
calculations {
... on RetailOffer {
offerNumber
totalPrice
totalPriceNet
totalPriceVat
vat
createdAt
areas {
pos
groups {
pos
title
priceSalesNet
pricePurchaseNet
priceWagesNet
priceTotalNet
positions {
pos
title
description
priceSalesNet
pricePurchaseNet
priceWagesNet
priceTotalNet
items {
pos
title
description
amount
status
unit
priceSalesNet
pricePurchaseNet
priceWagesNet
priceTotalNet
orderNumber
}
}
}
}
}
documents {
id
publicUrl
label
fileName
mime
name
}
}
}
createdAt
}
}
Risposta
{
"data": {
"lead": {
"leadId": 123456789,
"salutation": "MR",
"firstName": "Max",
"lastName": "Müller",
"address": {
"street": "Neue Promenade",
"streetNo": "3",
"city": "Berlin",
"zip": "10178",
"lat": null,
"lng": null
},
"email": "karol.wyszynski@meister1.de",
"phone": "+49 123123",
"distance": null,
"salesStatus": "OPEN",
"assignee": {
"firstName": "Max",
"lastName": "Mustermann"
},
"transactions": [
{
"flowInputFieldGroups": [
{
"label": "Brennstoff",
"name": "brennstoff",
"fields": [
{
"name": "brennstoff_wunsch",
"label": "Womit möchten Sie in Zukunft heizen?",
"values": [
{
"label": "Erdgas",
"name": "gas"
}
]
},
{
"name": "brennstoff_aktuell",
"label": "Womit heizen Sie aktuell?",
"values": [
{
"label": "Gas",
"name": "gas"
}
]
}
]
}
],
"calculations": [
{
"offerNumber": "M1-HT-7067",
"totalPrice": 10273.66,
"totalPriceNet": 8633.33,
"totalPriceVat": 1640.33,
"vat": 19,
"createdAt": 1695040527603,
"areas": [
{
"pos": "1",
"groups": [
{
"pos": "1.1",
"title": "Demontage der Altanlage",
"priceSalesNet": 17,
"pricePurchaseNet": 15,
"priceWagesNet": 252,
"priceTotalNet": 269,
"positions": [
{
"pos": "1.1.1",
"title": "Demontage",
"description": "<br><p>Die Demontage eines bestehenden Gaskessels ist nicht im Angebot enthalten.2</p><br>Demontage und umweltgerechte Entsorgung eines Warmwasserspeichers (aus dem Keller bis 200 Liter)<br>Rückbau vorhandener Gaszähler und Gasleitungen<br><b>Wir schützen Ihren Wohnbereich während der Montagearbeiten.</b><br>\n Um das zu gewährleisten, werden von uns sämtliche Böden und Treppen im Haus, die als Arbeitsplatz oder Weg benötigt werden, mit Schutzflies abgedeckt und Kanten mit Kantenschutz versehen!",
"priceSalesNet": 17,
"pricePurchaseNet": 15,
"priceWagesNet": 252,
"priceTotalNet": 269,
"items": [
{
"pos": "1.1.1.1",
"title": "Demontage und umweltgerechte Entsorgung eines Warmwasserspeichers (aus dem Keller bis 200 Liter)",
"description": "Demontage und umweltgerechte Entsorgung eines Warmwasserspeichers (aus dem Keller bis 200 Liter)",
"amount": 1,
"status": "ACTIVE",
"unit": "Psch",
"priceSalesNet": 12,
"pricePurchaseNet": 10,
"priceWagesNet": 114,
"priceTotalNet": 126,
"orderNumber": "HA-05090"
},
{
"pos": "1.1.1.2",
"title": "Rückbau Gasanschluss inkl. Zähler und Gasleitungen bis 7m",
"description": "Rückbau vorhandener Gaszähler und Gasleitungen",
"amount": 1,
"status": "ACTIVE",
"unit": "Psch",
"priceSalesNet": 5,
"pricePurchaseNet": 5,
"priceWagesNet": 108,
"priceTotalNet": 113,
"orderNumber": "HA-05252"
},
{
"pos": "1.1.1.3",
"title": "Einrichtung der Baustelle",
"description": "<b>Wir schützen Ihren Wohnbereich während der Montagearbeiten.</b><br>\n Um das zu gewährleisten, werden von uns sämtliche Böden und Treppen im Haus, die als Arbeitsplatz oder Weg benötigt werden, mit Schutzflies abgedeckt und Kanten mit Kantenschutz versehen!",
"amount": 1,
"status": "ACTIVE",
"unit": "Psch",
"priceSalesNet": 0,
"pricePurchaseNet": 0,
"priceWagesNet": 30,
"priceTotalNet": 30,
"orderNumber": "HA-05230"
}
]
}
]
}
]
}
],
"documents": [
{
"publicUrl": "https://api.lokalleads.de/output/download/e95pweea-030b-45ca-a5a8-05e0a538z433-a27b4111-f9a5-4d7f-8f64-0bbc0b46c0bd-123jus3hh4.pdf",
"label": "Angebot",
"fileName": "M1-HT-7067 Angebot.pdf",
"mime": "text/plain; charset=windows-1252",
"name": "pdf"
},
{
"publicUrl": "https://api.lokalleads.de/output/download/88387eaf-67c0-48a7-9403-70c668ecadc1-fc9b043f-311e-42ac-b577-1566749773a3.xml",
"label": "XI:OPD",
"fileName": "M1-HT-7067 XI:OPD.xml",
"mime": "text/xml; charset=utf-8",
"name": "opd_export"
}
]
}
]
}
],
"createdAt": 1695040497329
}
}
}