Top Menu

Jump to content
Home
    Modules
      • Projects
      • Activity
      • Work packages
      • Gantt charts
      • Calendars
      • Team planners
      • Boards
      • News
    • Getting started
    • Introduction video
      Welcome to OpenProject Community
      Get a quick overview of project management and team collaboration with OpenProject. You can restart this video from the help menu.

    • Help and support
    • Upgrade to Enterprise edition
    • User guides
    • Videos
    • Shortcuts
    • Community forum
    • Enterprise support

    • Additional resources
    • Data privacy and security policy
    • Digital accessibility (DE)
    • OpenProject website
    • Security alerts / Newsletter
    • OpenProject blog
    • Release notes
    • Report a bug
    • Development roadmap
    • Add and edit translations
    • API documentation
  • Sign in
      Forgot your password?

      or sign in with your existing account

      Google

Side Menu

  • Overview
  • Activity
    Activity
  • Roadmap
  • Work packages
    Work packages
  • Gantt charts
    Gantt charts
  • Calendars
    Calendars
  • Team planners
    Team planners
  • Boards
    Boards
  • News
  • Forums

Content

Development
  1. OpenProject
  2. Forums
  3. Development
  4. Create a work package with API

Create a work package with API

Added by Otmane Azeroual about 8 years ago

Hi,

I’m able to connect and list work packages via API 3.0
But the creation doesn’t work.

I have tried to create with this code a work packages:

var http= new XMLHttpRequest();
var url = “mydomain/openproject/api/v3/projects/test/work_packages/”;
var data = ‘{subject subject“,”description“: { ”format“: ”textile“, ”raw“: ”My raw textile formatted description. Bye guys!" }, “_links”: {“type”: {href, status, priority }}’;
http.open(“POST”, url, true);
http.setRequestHeader(“Content-type”, “application/json”);
http.onreadystatechange = function() {
if (http.readyState 4 && http.status 200) {
// do something with response
console.log(http.responseText);
}
console.log(http.readyState + “-” + http.status);
};
http.send(data);

Can someone explain why is not work? Any assistance would be greatly appreciated!

Kind regards
Otmane


Replies (7)

RE: Create a project with API - Added by Kersten Mitte about 8 years ago

Hi Otmane,

do you want create a project or a work_package.

Your json string looks like creating a work_package.
For a work_package I think you need add: (the user 3 must exist)

“assignee”: {
“href”: “/api/v3/users/3”
}

i use php and this json worked for me:

{
“subject”: “new work_package”,
“description”: {
“format”: “textile”,
“raw”: “hallo”
},
“_links”: {
“type”: {
“href”: “/api/v3/types/1”,
“title”: “Task”
},
“status”: {
“href”: “/api/v3/statuses/1”
},
“priority”: {
“href”: “/api/v3/priorities/8”,
“title”: “Normal”
},
“assignee”: {
“href”: “/api/v3/users/3”
}
}
}

2. I could not find something like “auth:apikey” in your code.

Best
Kersten

RE: Create a project with API - Added by Otmane Azeroual about 8 years ago

Hallo Kersten,

Thank you for your response. i have used
“assignee”: {
“href”: “/api/v3/users/3” and auth:apikey but is not function!

can you show me please your example with auth:apikey?

thank you for your help!

Best regards
Otmane

RE: Create a work package with API - Added by Otmane Azeroual about 8 years ago

I tried to add the authentification to json string as follows:

var url = “mydomain/openproject/api/v3/projects/kdsf/work_packages/”;
var auth=‘xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx’;
var json_upload =
‘{
auth
apikey
},
data
subject subject“,
”description“:{
”format“:”textile“,
”raw“:”My raw textile formatted description. Bye guys!"
},
_links
type
href,
title
},
status
href
},
priority
href,
title
},
assignee
href
}
}
}
}’;

var xhr2 = new XMLHttpRequest();
xhr2.open(“POST”, url, true);
xhr2.setRequestHeader(“Content-type”, “application/json”);
xhr2.onreadystatechange = function() {
if (xhr2.readyState 4 && xhr2.status 200) {
// do something with response
console.log(xhr2.responseText);
}
console.log(xhr2.readyState + “-” + xhr2.status);
};
xhr2.send(JSON.stringify(json_upload));

Still i only get readyState == 4 and status = 0 in the console. the user admin is existing.

Do you know what the problem is?

Thank you for your help!

Best regards
Otmane

RE: Create a work package with API - Added by Kersten Mitte about 8 years ago

Hi Otmane,

- “auth” … belongs to the header like “Conten-type” and not to the json data.

maybe this php code can help you a litte:

fputs($fp, “Content-type: application/json\r\n”);
fputs($fp, “Authorization: Basic ”.base64_encode(“apikey:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx”).“\r\n”);
fputs($fp, “Content-length: ”. strlen($data) .“\r\n”);
fputs($fp, “Connection: close\r\n\r\n”);
fputs($fp, $json_data);

best
kersten

RE: Create a work package with API - Added by Otmane Azeroual about 8 years ago

Hey Kersten,

Can you please send me the complete code php.

Thank you for your help!

Best regards
Otmane

RE: Create a work package with API - Added by Otmane Azeroual about 8 years ago

Hi Kersten,

I have a question, you have the API folder in the installation of OpenProject. I want to address the API folders (/openproject/api/v3/projects) because I always get readyState == 4 and status = 0 in the console. I have looked at all Api documentation und my code is correct. Something does not work right with me. Can you please help me or tell me what the problem ist ? I would be very grateful

Thank you for you help!

Best,
Otmane

RE: Create a work package with API - Added by Kersten Mitte about 8 years ago

Hi Otmane,

i must use a connection with http:// an not https://.

Best
Kersten

  • (1 - 7/7)
Loading...