From OpenDCIM Wiki
Jump to: navigation, search
(Collections)
Line 4: Line 4:
  
  
=== Data Format ===
+
= Data Format =
  
 
openDCIM data will always be returned in JSON format, with no pagination.  This is open source, so if you need your output in another format, such as XML, you can modify the appropriate function in the application.
 
openDCIM data will always be returned in JSON format, with no pagination.  This is open source, so if you need your output in another format, such as XML, you can modify the appropriate function in the application.
  
=== Authentication ===
+
= Authentication =
  
 
RESTful APIs by definition are stateless, but do still need some form of authentication.  It is suggested that you create a separate account for the API to use, rather than piggy-backing off of an existing user account.
 
RESTful APIs by definition are stateless, but do still need some form of authentication.  It is suggested that you create a separate account for the API to use, rather than piggy-backing off of an existing user account.
Line 14: Line 14:
 
'''At a minimum, the account created for the API must have Global Read Access.'''  Working with the inner guts of openDCIM will certainly increase the risk of data corruption, so it's not something that should be opened up lightly.
 
'''At a minimum, the account created for the API must have Global Read Access.'''  Working with the inner guts of openDCIM will certainly increase the risk of data corruption, so it's not something that should be opened up lightly.
  
=== Base URI ===
+
= Base URI =
  
 
Depending on how you implement your website, this may vary, but most would take on the format of:
 
Depending on how you implement your website, this may vary, but most would take on the format of:
Line 23: Line 23:
  
  
=== Collections ===
+
= Collections =
  
 
Collections of data are defined by requests which may return more than a single entity.  Below are the defined interfaces.
 
Collections of data are defined by requests which may return more than a single entity.  Below are the defined interfaces.
  
  
==== People ====
+
== People ==
  
 
/people
 
/people
Line 41: Line 41:
  
  
==== Data Centers ====
+
== Data Centers ==
  
 
/datacenter
 
/datacenter
  
 
This URI will return a collection of all data centers defined within openDCIM.  There is a corresponding Entity URL for retrieving a single entity.
 
This URI will return a collection of all data centers defined within openDCIM.  There is a corresponding Entity URL for retrieving a single entity.

Revision as of 13:06, 7 January 2015

openDCIM has a RESTful API interface which can be accessed by other applications.

Development of the API is happening in stages, and as such this specification is subject to change. If you are unfamiliar with what a RESTful API is, a good place to start is the Wikipedia Entry.


Data Format

openDCIM data will always be returned in JSON format, with no pagination. This is open source, so if you need your output in another format, such as XML, you can modify the appropriate function in the application.

Authentication

RESTful APIs by definition are stateless, but do still need some form of authentication. It is suggested that you create a separate account for the API to use, rather than piggy-backing off of an existing user account.

At a minimum, the account created for the API must have Global Read Access. Working with the inner guts of openDCIM will certainly increase the risk of data corruption, so it's not something that should be opened up lightly.

Base URI

Depending on how you implement your website, this may vary, but most would take on the format of:

https://myurl/api/v1 (for Version 1 of the API)

All definitions listed below will assume that they are added on to the base URI. For example, to get a list of all devices, the full URI would be https://myurl/api/vi/devices


Collections

Collections of data are defined by requests which may return more than a single entity. Below are the defined interfaces.


People

/people

This URI will return a collection of all people defined within openDCIM. There is a corresponding Entity URL for retrieving a single entity.


/people/bydepartment/:departmentid

This URI will return a collection of all people (if any) that are members of the given department. Note that people can be members of multiple departments.


Data Centers

/datacenter

This URI will return a collection of all data centers defined within openDCIM. There is a corresponding Entity URL for retrieving a single entity.