De Content-Type-header in een HTTP-verzoek wordt gebruikt om het mediatype of MIME-type (Multipurpose Internet Mail Extensions) van de resource aan te geven die in de body van het verzoek wordt verzonden. Het vertelt de server welk type data er in de payload van het verzoek wordt verzonden, zodat de server het op de juiste manier kan verwerken. Twee veelgebruikte waarden zijn:
application/json: Gebruikt voor JSON-datamultipart/form-data: Gebruikt voor het verzenden van binaire data of bestanden in een formulierDe noodzaak om de Content-Type-header op te geven, hangt af van het type HTTP-verzoek en of het een message body bevat of niet. De Content-Type-header is verplicht voor verzoeken met een message body, zoals POST- en PUT-verzoeken, maar is niet nodig voor verzoeken zonder een message body, zoals GET- en DELETE-verzoeken.
Voor de API van DocuGenerate is het cruciaal dat uw verzoeken het juiste content type gebruiken voor een succesvolle communicatie. Lees verder om te zien welk content type u kunt gebruiken bij het maken of bijwerken van een sjabloon of bij het genereren of bijwerken van een document.
Zorg ervoor dat u de volgende header gebruikt bij het maken of bijwerken van een sjabloon:
Content-Type: multipart/form-data
Bij het aanroepen van het eindpunt POST /template of PUT /template/{id}, moet het content type multipart/form-data zijn om de parameter file te ondersteunen, die de binaire weergave van het geüploade sjabloonbestand verwacht:
curl -X 'POST' \
'https://api.docugenerate.com/v1/template' \
-H 'Authorization: 491c000c5fad32ed7787005b0723ad55' \
-H 'Accept: application/json' \
-H 'Content-Type: multipart/form-data' \
-F 'file=@Invoice.docx;type=application/vnd.openxmlformats-officedocument.wordprocessingml.document' \
-F 'name=Invoice' \
-F 'delimiters={
"left": "[",
"right": "]"
}' \
-F 'enhanced_syntax=false'
Het content type multipart/form-data is bijzonder nuttig bij het werken met webformulieren die bestandsuploads bevatten. Het maakt het mogelijk om tekst en binaire data als één enkel verzoek te verzenden, wat het veelzijdig maakt voor verschillende datatypes.
Op dezelfde manier kunt u bij het maken of bijwerken van een document een van de volgende headers gebruiken:
Content-Type: application/json
Content-Type: multipart/form-data
Naast de mogelijkheid om het content type multipart/form-data te gebruiken, accepteert het eindpunt voor documentgeneratie ook het content type application/json.
Kiezen tussen content types
Als u een binair bestand met data moet doorgeven, is het verplicht om het content type multipart/form-data te gebruiken. Als uw data als JSON wordt aangeleverd, kunt u zowel het content type application/json als multipart/form-data gebruiken.
Een databestand gebruiken
Om in bulk documenten te genereren op basis van een sjabloon en een Excel-bestand met de data, gebruikt u het content type multipart/form-data bij het aanroepen van het eindpunt POST /document:
curl -X 'POST' \
'https://api.docugenerate.com/v1/document' \
-H 'Authorization: 491c000c5fad32ed7787005b0723ad55' \
-H 'Accept: application/json' \
-H 'Content-Type: multipart/form-data' \
-F 'template_id=B7mRfQIxjAu4Mm3IwJVz' \
-F 'name=Invoice' \
-F 'page_break=true' \
-F 'single_file=true' \
-F 'output_format=.pdf' \
-F 'file=@Data.xlsx;type=application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
JSON-data gebruiken
Als de data als JSON wordt aangeleverd, kan een van beide content types worden gebruikt.
Voor multipart/form-data bevat de parameter data de tekenreeksweergave van het JSON-object (verkregen met bijvoorbeeld JSON.stringify() in JavaScript):
curl -X 'POST' \
'https://api.docugenerate.com/v1/document' \
-H 'Authorization: 491c000c5fad32ed7787005b0723ad55' \
-H 'Accept: application/json' \
-H 'Content-Type: multipart/form-data' \
-F 'template_id=B7mRfQIxjAu4Mm3IwJVz' \
-F 'data=[{"Invoice No":"INV-1001","Invoice Date":"2023-12-15","Total": "$200"},{"Invoice No":"INV-1002","Invoice Date":"2023-12-16","Total":"$500"}]' \
-F 'name=Invoice' \
-F 'page_break=true' \
-F 'single_file=true' \
-F 'output_format=.pdf'
Voor application/json is de volledige payload van het verzoek een JSON-object en bevat het de eigenschap data als onderdeel daarvan, die een array van JSON-objecten kan zijn (om meerdere documenten te genereren) of een enkel JSON-object (om één document te genereren):
curl -X 'POST' \
'https://api.docugenerate.com/v1/document' \
-H 'Authorization: 491c000c5fad32ed7787005b0723ad55' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"template_id": "B7mRfQIxjAu4Mm3IwJVz",
"data": [{
"Invoice No": "INV-1001",
"Invoice Date": "2023-12-15",
"Total": "$200"
},
{
"Invoice No": "INV-1002",
"Invoice Date": "2023-12-16",
"Total": "$500"
}],
"name": "Invoice",
"output_format": ".pdf",
"single_file": true,
"page_break": true
}'
Ook bij het aanroepen van het eindpunt PUT /document/{id} om een bestaand document bij te werken, kan een van beide content types worden gebruikt.