Standard Procedure

Generally, the Bim+ REST API calls consist of three steps for accessing the resources.

1. Send a request for the authentication token.

\[#Test\]

2. Receive the authentication token.

3. Use the token for making the API request for any resource.

1. Authentication token request 

The authentication request for accessing the BimPlus resource should be sent in the JSON format using the Authorization service.

Example:

POST https://api.bimplus.net/v2/authorize

JSON Request:

{
 "user_id" : "test@bimplus.net",
 "password" : "test"
}

Header:

If the Browser based REST clients does not select the Content-Type as "application/json", then please mention the content type in the header(Content-Type: application/json)

{deck:id=bimRequestToken}
{card:label=Implementation Status}
!check.gif|border=1! Service available \!
{card}
{card:label=HTTP Method}
POST
{card}
{card:label=URL / Resource / Parameters}
*Resource*: authorize 

*URL*: {nolink:https://api.bimplus.net/v2/}authorize
{card}{card:label=Description}Authenticates a user and returns a token which can be used for further API calls for accessing the desired resources.

{card}{card:label=Request|default=true}
{code:title=Headers|borderColor=Green}
Content-Type: application/json
{code}
\\
{code:title=JSON|borderColor=Red}{
 "user_id" : "test@bimplus.net",
 "password" : "test"
}{code}
{card}
{card:label=Response}
{code:title=Status|borderColor=Green}
Status: 200 OK
{code}
\\
{code:title=JSON|borderColor=Red}{
access_token: "c939ebf5b96646528e0022a35f7a2e67"
expires_in: 2591999
token_type: "BimPlus"
}{code}
{card}
{deck}

h3. 2. Receive the authentication token 

The token is received in the request
{deck:id=bimReceiveToken}
\\
{card:label=Implementation Status}
!check.gif|border=1! Service available \!
{card}
\\
{card:label=HTTP Method}
POST
{card}
\\
{card:label=URL / Resource / Parameters}
*Resource*: authorize 

*URL*: {nolink:https://api.bimplus.net/v2/}authorize
{card}\\ {card:label=Description}Authenticates a user and returns a token which can be used for further API calls for accessing the desired resources.
{card}\\ {card:label=Request}
\\
{code:title=Headers|borderColor=Green}
Content-Type: application/json
{code}
\\
{code:title=JSON|borderColor=Red}{
 "user_id" : "test@bimplus.net",
 "password" : "test"
}{code}
\\
{card}
\\
{card:label=Response|default=true}
\\
{code:title=Status|borderColor=Green}
Status: 200 OK
{code}
\\
{code:title=JSON|borderColor=Red}{
access_token: "c939ebf5b96646528e0022a35f7a2e67"
expires_in: 2591999
token_type: "BimPlus"
}{code}
\\
{card}
\\
{deck}
{code}{
access_token: "c939ebf5b96646528e0022a35f7a2e67"
expires_in: 2591999
token_type: "BimPlus"
}{code}



h3. 3. Request the desired resource

Using the authentication token, the necessary resource can be accessed and the desired action can be performed on that resource using the BimPlus REST API.

Example:

{color:#000000}{*}Get Project List{*}{color}

 Service available !

GET


Resource: projects 

URLhttps://api.bimplus.net/v2/<company>/projects

Examplehttps://api.bimplus.net/v2/bimplus/projects


Get available project list with main properties.



Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
Content-Type: application/json




Status: 200 OK


[3]
0:  {
id: "c8c8e6f2-4495-484c-929d-0049f1f9d4ff"
name: "!!!!!_VORTEILSHAUS V40 SD45 Traufeingang"
}-
1:  {
id: "2d703abe-b4f9-407c-af53-a39c5b7ba872"
name: "__5 999 Parklife Salzburg Lehen"
}-
2:  {
id: "c480cc54-aec4-4bef-8d35-93bb090e1aba"
name: "0811-Wohnhaus Kraus - Carport1"
}


Get Project Properties


 Service available !


GET


Resource: projects/<project_id>

URLhttps://api.bimplus.net/v2/<company>/projects/<project_id>

Examplehttps://api.bimplus.net/v2/bimplus/projects/c8c8e6f2-4495-484c-929d-0049f1f9d4ff


Get all the project properties of a project using its id.



Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
Content-Type: application/json




Status: 200 OK


{
disciplines: [0]
name: null
shortDescr: null
thumbnail: null
created: "0001-01-01T00:00:00"
changed: "0001-01-01T00:00:00"
id: "c8c8e6f2-4495-484c-929d-0049f1f9d4ff"
}



Tools 

Plugins for doing REST based calls (REST Client)

Chrome --> Advanced REST clientPostman - REST clientSimple REST client

Firefox --> RESTClient

For validating or formatting JSON --> http://jsonlint.com/