Resource summary
Users
GET /users Returns all users.
- Request
GET http://localhost:8080/tinypm/api/users
- Response
<users>
<user>
<active>true</active>
<id>1</id>
<name>Alice</name>
</user>
<user>
<active>false</active>
<id>2</id>
<name>Bob</name>
</user>
</users>
GET /user/{userId} Returns a single user identified by userId.
- Request
GET http://localhost:8080/tinypm/api/user/1
- Response
<user>
<id>1</id>
<name>Alice</name>
<login>alice</login>
<email>alice@nowhere.com</email>
<active>true</active>
</user>
Projects
GET /projects Returns all projects.
- Request
GET http://localhost:8080/tinypm/api/projects
- Response
<projects>
<project>
<active>true</active>
<code>tpm</code>
<id>1</id>
<name>tinyPM</name>
</project>
<project>
<active>false</active>
<code>sup</code>
<id>14</id>
<name>Support</name>
</project>
</projects>
GET /project/{projectId} Returns a single project identified by projectId.
- Request
GET http://localhost:8080/tinypm/api/project/1
- Response
<project>
<id>1</id>
<code>tpm</code>
<name>tinyPM</name>
<description>Best agile management tool.</description>
<startDate>2006-04-01</startDate>
<targetFinishDate>2067-04-01</targetFinishDate>
<owner>
<id>1</id>
<name>Alice</name>
<login>alice</login>
<email>alice@nowhere.com</email>
<active>true</active>
</owner>
<estimates>
<value>0.0</value>
<value>0.5</value>
<value>1.0</value>
<value>2.0</value>
<value>3.0</value>
<value>5.0</value>
<value>8.0</value>
<value>13.0</value>
<value>20.0</value>
<value>40.0</value>
<value>80.0</value>
<value>100.0</value>
</estimates>
<iterationLength>14</iterationLength>
<defaultTask>Implement and test user story "{0}".</defaultTask>
<active>true</active>
</project>
Iterations
GET /project/{projectId}/iterations Returns all iterations for a given project.
- Request
GET http://localhost:8080/tinypm/api/project/1/iterations
- Response
<iterations>
<iteration>
<id>1</id>
<name>Iteration 1</name>
<goal>Goal</goal>
<plannedVelocity>20.0</plannedVelocity>
<position>1</position>
<startDate>2006-04-01</startDate>
<duration>7</duration>
</iteration>
<iteration>
<id>2</id>
<name>Iteration 2</name>
<goal>Goal</goal>
<plannedVelocity>20.0</plannedVelocity>
<position>2</position>
<startDate>2006-04-01</startDate>
<duration>7</duration>
</iteration>
</iterations>
User stories
GET /project/{projectId}/userstories Returns all user stories for a given project.
- Request
GET http://localhost:8080/tinypm/api/project/1/userstories
- Response
<userStories>
<userStory>
<id>1</id>
<name>As an editor I want to be able to publish a new topic.</name>
</userStory>
<userStory>
<id>2</id>
<name>As an editor I want to be able to browse drafts.</name>
</userStory>
</userStories>
POST /project/{projectId}/userstories Creates a new user story.
- Request
POST http://localhost:8080/tinypm/api/project/1/userstories
<userStory>
<name>As an editor I want to be able to publish a new topic.</name>
<description>Each topic has to have a unique title.</description>
<priority>
<id>1</id>
<name>MUST_HAVE</name>
<priority>1</priority>
</priority>
<estimatedEffort>3.0</estimatedEffort>
<iteration>
<id>2</id>
</iteration>
<color>BLUE</color>
<owner>
<id>2</id>
</owner>
<acceptingUser>
<id>1</id>
</acceptingUser>
<acceptanceStatus>ACCEPTED</acceptanceStatus>
</userStory>
GET /project/{projectId}/iteration/current/userstories Returns all stories in the current iterartion.
- Request
GET http://localhost:8080/tinypm/api/project/1/iteration/current/userstories
- Response
<userStories>
<userStory>
<id>1</id>
<name>As an editor I want to be able to publish a new topic.</name>
</userStory>
<userStory>
<id>2</id>
<name>As an editor I want to be able to browse drafts.</name>
</userStory>
</userStories>
POST /project/{projectId}/iteration/current/userstories Creates a new user story in the current iteration.
- Request
POST http://localhost:8080/tinypm/api/project/1/iteration/current/userstories
<userStory>
<name>As an editor I want to be able to publish a new topic.</name>
<description>Each topic has to have a unique title.</description>
<priority>
<id>1</id>
<name>MUST_HAVE</name>
<priority>1</priority>
</priority>
<estimatedEffort>3.0</estimatedEffort>
<color>BLUE</color>
<owner>
<id>2</id>
</owner>
<acceptingUser>
<id>1</id>
</acceptingUser>
<acceptanceStatus>ACCEPTED</acceptanceStatus>
</userStory>
GET /userstory/{userStoryId} Returns a single user story.
- Request
GET http://localhost:8080/tinypm/api/userstory/3
- Response
<userStory>
<id>3</id>
<name>As an editor I want to be able to publish a new topic.</name>
<description>Each topic has to have a unique title.</description>
<priority>
<id>1</id>
<name>MUST_HAVE</name>
<priority>1</priority>
</priority>
<estimatedEffort>3.0</estimatedEffort>
<iteration>
<id>2</id>
<name>Iteration 2</name>
<goal>Goal</goal>
<plannedVelocity>20.0</plannedVelocity>
<position>2</position>
<startDate>2006-04-01</startDate>
<duration>7</duration>
</iteration>
<color>BLUE</color>
<acceptingUser>
<id>1</id>
<name>Alice</name>
<login>alice</login>
<email>alice@nowhere.com</email>
<active>true</active>
</acceptingUser>
<owner>
<id>2</id>
<name>Bob</name>
<login>bob</login>
<email>bob@nowhere.com</email>
<active>true</active>
</owner>
<acceptanceStatus>ACCEPTED</acceptanceStatus>
</userStory>
PUT /userstory/{userStoryId} Updates an existing user story.
You have to provide a complete replacement for the resource. If you omit any xml node, the property will get null value.
- Request
PUT http://localhost:8080/tinypm/api/userstory/12
<userStory>
<name>As an editor I want to be able to publish a new topic.</name>
<description>Each topic has to have a unique title.</description>
<priority>
<id>1</id>
<name>MUST_HAVE</name>
<priority>1</priority>
</priority>
<estimatedEffort>3.0</estimatedEffort>
<iteration>
<id>2</id>
</iteration>
<color>BLUE</color>
<owner>
<id>2</id>
</owner>
<acceptingUser>
<id>1</id>
</acceptingUser>
<acceptanceStatus>ACCEPTED</acceptanceStatus>
</userStory>
DELETE /userstory/{userStoryId} Deletes the user story.
- Request
DELETE http://localhost:8080/tinypm/api/userstory/12
Tasks
GET /userstory/{userStoryId}/tasks Returns all tasks for a given user story.
- Request
GET http://localhost:8080/tinypm/api/userstory/12/tasks
- Response
<tasks>
<task>
<id>1</id>
<name>Write decent documentation.</name>
<status>IN_PROGRESS</status>
</task>
<task>
<id>2</id>
<name>Write sample client code.</name>
<status>COMPLETED</status>
</task>
</tasks>
POST /userstory/{userStoryId}/tasks Creates a new task in a given user story.
- Request
POST http://localhost:8080/tinypm/api/userstory/12/tasks
<task>
<name>Write decent documentation</name>
<description>Request-response samples.</description>
<status>COMPLETED</status>
<startedAt>2009-07-31 12:49:39.833</startedAt>
<completedAt>2009-07-31 12:49:39.833</completedAt>
<assignedUsers>
<user>
<id>1</id>
</user>
<user>
<id>2</id>
</user>
</assignedUsers>
</task>
GET /task/{taskId} Returns a single task.
- Request
GET http://localhost:8080/tinypm/api/task/12
- Response
<task>
<id>12</id>
<name>Write decent documentation</name>
<description>Request-response samples.</description>
<status>COMPLETED</status>
<startedAt>2009-07-28 20:11:08.581</startedAt>
<completedAt>2009-07-28 20:11:08.581</completedAt>
<assignedUsers>
<user>
<id>1</id>
<name>Alice</name>
<login>alice</login
<email>alice@nowhere.com</email>
<active>true</active>
</user>
<user>
<id>2</id>
<name>Bob</name>
<login>bob</login>
<email>bob@nowhere.com</email>
<active>true</active>
</user>
</assignedUsers>
</task>
PUT /task/{taskId} Updates an existing task.
You have to provide a complete replacement for the resource. If you omit any xml node, the property will get null value.
- Request
PUT http://localhost:8080/tinypm/api/task/7
<task>
<name>Write decent documentation</name>
<description>Request-response samples.</description>
<status>COMPLETED</status>
<startedAt>2009-07-31 12:49:39.833</startedAt>
<completedAt>2009-07-31 12:49:39.833</completedAt>
<assignedUsers>
<user>
<id>1</id>
</user>
<user>
<id>2</id>
</user>
</assignedUsers>
</task>
DELETE /task/{taskId} Deletes the task.
- Request
DELETE http://localhost:8080/tinypm/api/task/7

If this documentation doesn't solve your problem or has left you with any questions, please don't hesitate to contact us at
support@tinypm.com