Rest api with curl » History » Revision 4
Revision 3 (Jean-Philippe Lang, 2011-07-03 19:55) → Revision 4/10 (Terence Mill, 2011-12-12 11:22)
h1. Using the REST API with cURL "curl":http://curl.haxx.se/ is a command-line tool for transferring data using various protocols. It can be used to interact with the Redmine REST API. h2. Using JSON Here is a simple example of a command that can be used to update an issue: <pre> 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 </pre> The file that contains the data sent to Redmine (388.json in the example above) would look like this: <pre> { "issue": { "subject": "subject123", "notes": "Changing the subject" } } </pre> 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@ h2. Using XML Here is a simple example of a command that can be used to create an issue with custom fields: <pre> 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 </pre> Where issue.xml content is: <pre> <?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> </pre>