Data-First API Design Chart

A starting point for designing a simple restful API for your data-first web applications

Created in 2012 for

mdavidgreen.com

by M. David Green

POST GET PUT DELETE
collection

/items

Create a new item

/items

Return a set of items

/items?date=20120612

Update the date for a set of items

/items

Delete a set of items

item

/items/123

error

/items/123

Return item 123

/items/123?date=20120612

Update the date for item 123

/items/123

Delete item 123

versioned collection

/v1/items

Create a new item

/v1/items

Return a set of items

/v1/items?date=20120612

Update the date for a set of items

/v1/items

Delete a set of items

versioned item

/v1/items/123

error

/v1/items/123

Return item 123

/v1/items/123?date=20120612

Update the date for item 123

/v1/items/123

Delete item 123

nested collection

/items/123/parts

create a new part for item 123

/items/123/parts

Return parts for item 123

/items/123/parts?date=20120612

Update the date for parts for item 123

/items/123/parts

Delete parts for item 123

nested item

/items/123/parts/2

error

/items/123/parts/2

Return item 123 part 2

/items/123/parts/2?date=20120612

Update the date for item 123 part 2

/items/123/parts/2

Delete item 123 part 2

legacy client collection

/items?method=post

Create a new item

/items?method=get

Return a set of items

/items?method=put&date=20120612

Update the date for a set of items

/items?method=delete

Delete a set of items

legacy client item

/items/123?method=post

error

/items/123?method=get

Return item 123

/items/123?method=put&date=20120612

Update the date for item 123

/items/123?method=delete

Delete item 123

collection filtered by fields

/items

Create a new item

/items?fields=name,color,version

Return the name, color, and version values for a set of items

/items

Update a set of items

/items

Delete a set of items

collection filtered by content

/items

Create a new item

/items?color=red

Return a set of items with a color of red

/items

Update a set of items

/items

Delete a set of items

XML format collection

/items

Create a new item

/items.xml

Return a set of items in XML format

/items

Update a set of items

/items

Delete a set of items

XML format item

/items/123

error

/items/123.xml

Return item 123 in XML format

/items/123

Update item 123

/items/123

Delete item 123

paginated collection

/items

create a new item

/items?offset=0&count=10

return a set of items

/items

update a set of items

/items

delete a set of items

collection search

/items

create a new item

/items/search?q=red

return items matching "red"

/items

update a set of items

/items

delete a set of items

Posted in

One comment

  1. Pingback: Data-First API Design with JSON | M. David Green

Post a comment

You may use the following HTML:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>