Rest api with curl » History » Revision 5
« Previous |
Revision 5/10
(diff)
| Next »
Jean-Philippe Lang, 2012-02-23 11:43
example for attaching files
Using the REST API with cURL¶
curl is a command-line tool for transferring data using various protocols. It can be used to interact with the Redmine REST API.
Using JSON¶
Here is a simple example of a command that can be used to update an issue:
curl -v -H "Content-Type: application/json" -X PUT --data "@388.json" -u login:password http://redmine/issues/388.json curl -v -H "Content-Type: application/json" -X PUT --data "@388.json" -H "X-Redmine-API-Key: xxxx" http://redmine/issues/388.json
The file that contains the data sent to Redmine (388.json in the example above) would look like this:
{ "issue": { "subject": "subject123", "notes": "Changing the subject" } }Note: it's required to set the
Content-Type
header according to the format of the data you are sending. It must be set to one the following values:
application/json
application/xml
Using XML¶
Here is a simple example of a command that can be used to create an issue with custom fields:
curl -v -H "Content-Type: application/xml" -X POST --data "@issue.xml" -u login:password http://redmine/issues.xml curl -v -H "Content-Type: application/xml" -X POST --data "@issue.xml" -H "X-Redmine-API-Key: xxxx" http://redmine/issues.xml
Where issue.xml content is:
<?xml version="1.0" encoding="ISO-8859-1" ?> <issue> <subject>API custom fields</subject> <project_id>1</project_id> <tracker_id>2</tracker_id> <custom_fields type="array"> <custom_field> <id>2</id> <value>Fixed</value> </custom_field> <custom_field> <id>1</id> <value>0.8.2</value> </custom_field> </custom_fields> </issue>
Attaching files¶
If you want to create an issue with image.png attached, you need to upload this file first:
curl --data-binary "@image.png" -H "Content-Type: application/octet-stream" -X POST -u login:password http://redmine/uploads.xml # 201 response <upload> <token>7167.ed1ccdb093229ca1bd0b043618d88743</token> </upload>
Then, use the token to create the issue:
curl -v -H "Content-Type: application/xml" -X POST --data "@issue.xml" -u login:password http://redmine/issues.xml
Where issue.xml content is:
<?xml version="1.0" encoding="ISO-8859-1" ?> <issue> <subject>Issue with attachment</subject> <project_id>1</project_id> <uploads type="array"> <upload> <token>7167.ed1ccdb093229ca1bd0b043618d88743</token> <filename>image.png</filename> <content_type>image/png</content_type> </upload> </uploads> </issue>
Updated by Jean-Philippe Lang almost 13 years ago · 5 revisions