Rest api with curl » History » Version 4
  Terence Mill, 2011-12-12 11:22 
  
| 1 | 1 | Jean-Philippe Lang | h1. Using the REST API with cURL  | 
|---|---|---|---|
| 2 | |||
| 3 | "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.  | 
||
| 4 | |||
| 5 | 3 | Jean-Philippe Lang | h2. Using JSON  | 
| 6 | |||
| 7 | 1 | Jean-Philippe Lang | Here is a simple example of a command that can be used to update an issue:  | 
| 8 | |||
| 9 | <pre>  | 
||
| 10 | 3 | Jean-Philippe Lang | curl -v -H "Content-Type: application/json" -X PUT --data "@388.json" -u login:password http://redmine/issues/388.json  | 
| 11 | 4 | Terence Mill | curl -v -H "Content-Type: application/json" -X PUT --data "@388.json" -H "X-Redmine-API-Key: xxxx" http://redmine/issues/388.json  | 
| 12 | 1 | Jean-Philippe Lang | </pre>  | 
| 13 | |||
| 14 | The file that contains the data sent to Redmine (388.json in the example above) would look like this:  | 
||
| 15 | |||
| 16 | <pre>  | 
||
| 17 | { | 
||
| 18 |   "issue": { | 
||
| 19 | "subject": "subject123",  | 
||
| 20 | "notes": "Changing the subject"  | 
||
| 21 | }  | 
||
| 22 | }  | 
||
| 23 | </pre>  | 
||
| 24 | 2 | Jean-Philippe Lang | |
| 25 | 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:  | 
||
| 26 | * @application/json@  | 
||
| 27 | 1 | Jean-Philippe Lang | * @application/xml@  | 
| 28 | 3 | Jean-Philippe Lang | |
| 29 | h2. Using XML  | 
||
| 30 | |||
| 31 | |||
| 32 | Here is a simple example of a command that can be used to create an issue with custom fields:  | 
||
| 33 | |||
| 34 | <pre>  | 
||
| 35 | curl -v -H "Content-Type: application/xml" -X POST --data "@issue.xml" -u login:password http://redmine/issues.xml  | 
||
| 36 | 4 | Terence Mill | curl -v -H "Content-Type: application/xml" -X POST --data "@issue.xml" -H "X-Redmine-API-Key: xxxx" http://redmine/issues.xml  | 
| 37 | |||
| 38 | 3 | Jean-Philippe Lang | </pre>  | 
| 39 | |||
| 40 | Where issue.xml content is:  | 
||
| 41 | |||
| 42 | <pre>  | 
||
| 43 | <?xml version="1.0" encoding="ISO-8859-1" ?>  | 
||
| 44 | <issue>  | 
||
| 45 | <subject>API custom fields</subject>  | 
||
| 46 | <project_id>1</project_id>  | 
||
| 47 | <tracker_id>2</tracker_id>  | 
||
| 48 | <custom_fields type="array">  | 
||
| 49 | <custom_field>  | 
||
| 50 | <id>2</id>  | 
||
| 51 | <value>Fixed</value>  | 
||
| 52 | </custom_field>  | 
||
| 53 | <custom_field>  | 
||
| 54 | <id>1</id>  | 
||
| 55 | <value>0.8.2</value>  | 
||
| 56 | </custom_field>  | 
||
| 57 | </custom_fields>  | 
||
| 58 | </issue>  | 
||
| 59 | </pre>  |