Utvikling av integrasjoner
$ curl 'https://tripletex.no/v2/token/session/>whoAmI'
{
"name": "Julian Ravn Thrap-Meyer",
"email": "julian@tripletex.no",
"role": "Techlead API 2"
}
$ curl 'https://tripletex.no/v2/#table-of-contents'
[
"Ressurser",
"Tips og triks",
"Kommende funksjonalitet"
# Kom gjerne med spørsmål underveis!
]
$ curl 'https://tripletex.no/v2/#resources'
[
"Swagger",
"FAQ",
"Workplace",
"GitHub"
]
$ curl 'https://tripletex.no/v2/#tips-and-tricks'
[
"fields",
"version"
]
$ curl 'https://tripletex.no/v2/#fields'
[
"Velg hvilke felter man ønsker i retur",
"Rekursivt for underobjekter",
"Slå sammen flere kall til ett"
]
Hent ut alle prosjekter med e-postadressen til prosjektleder
$ curl 'https://tripletex.no/v2/project'
{
"id": 987654,
"version": 2,
"url": "tripletex.no/v2/project/987654",
"name": "Mitt prosjekt",
"number": "43",
"projectManager": {
"id": 45678,
"url": "tripletex.no/v2/employee/45678"
},
"startDate": "2013-03-01",
"endDate": null,
…
}
$ curl 'https://tripletex.no/v2/project' -G \
-d fields='name,projectManager(email)'
{
"name": "Mitt prosjekt",
"projectManager": {
"email": "julian@tripletex.no"
}
}
$ curl 'https://tripletex.no/v2/project' -G \
-d fields='name,projectManager(*)'
{
"name": "Mitt prosjekt",
"projectManager": {
"id": 45678,
"version": 12,
"url": "tripletex.no/v2/employee/45678",
"firstName": "Julian Ravn",
"lastName": "Thrap-Meyer",
"employeeNumber": "",
"dateOfBirth": "2018-03-06",
"email": "julian@tripletex.no",
"phoneNumberMobile": "",
"nationalIdentityNumber": "",
"dnumber": "",
"bankAccountNumber": "",
"address": {
"id": 1234,
"url": "tripletex.no/v2/address/1234"
},
"department": {
"id": 2345,
"url": "tripletex.no/v2/department/2345"
},
"employments": [ {
"id": 3456,
"url": "tripletex.no/v2/employee/employment/3456"
} ]
}
}
Øke prisen (med moms) på alle produker med 10%
GET /product
PUT /product/{id}
$ curl 'https://tripletex.no/v2/product'
{
"id": 123,
"version": 10,
"name": "Fantastisk produkt",
"priceIncludingVatCurrency": 1000.0,
…
}
$ curl -X PUT 'https://tripletex.no/v2/product/123' \
--data '{ "priceIncludingVatCurrency": 1100.0 }'
# HTTP/1.1 200 OK
{
"id": 123,
"version": 12, # oi, hvor ble det av 11?
"name": "Fantastisk produkt",
"priceIncludingVatCurrency": 1100.0,
…
}
$ curl -X PUT 'https://tripletex.no/v2/product/123' \
--data '{ "priceIncludingVatCurrency": 1100.0,
"version": 10 }'
# HTTP/1.1 409 Conflict
{
"status" : 409,
"code" : 8000,
"message" : "RevisionException",
"requestId" : "862839bc-6ac6-4e60-b871-485c887f02fb"
}
$ curl 'https://tripletex.no/v2/#version'
[
"Unngår konflikter",
"Returnerer HTTP 409 i stedet for å overskrive"
]
$ curl 'https://tripletex.no/v2/#upcoming-features'
[
"checksum",
"webhooks"
]
$ curl 'https://tripletex.no/v2/#checksum'
[
"Har datasettet endret seg?"
]
Synkroniser alle posteringer inn i et annet system
$ curl 'https://tripletex.no/v2/ledger/posting' -G \
-d dateFrom="2018-03-01" -d dateTo="2018-04-01"
# ............
{
mye data,
"checksum": "abc123"
}
$ curl 'https://tripletex.no/v2/ledger/posting' -G \
-d dateFrom="2018-03-01" -d dateTo="2018-04-01" \
-d checksum="abc123"
# HTTP/1.1 304 Not Modified
{
# veldig kjapt, uten data
}
$ curl 'https://tripletex.no/v2/ledger/posting' -G \
-d dateFrom="2018-03-01" -d dateTo="2018-04-01" \
-d checksum="abc123"
# ............
{
mye data,
"checksum": "def456"
}
Checksum er mulig å teste i dag
Ta kontakt!
$ curl 'https://tripletex.no/v2/#webhooks'
[
"Checksum 2.0",
"Få beskjed når ting skjer – helt automatisk!"
]
Synkroniser alle posteringer inn i et annet system (igjen)
$ curl 'https://tripletex.no/v2/event/subscription' \
-X POST --data '{
"eventKey": "Posting.CREATE",
"callback": "https://myapp.example/webhook"
}'
$ ./start-webhook-server
# Listening to https://myapp.example/webhook .........
# Data received!
{
"id": 253161,
"number": "412",
"description": "Eksempelpostering"
}
Om ikke altfor lenge!
Presentasjonen ligger på GitHub!