Skip to content

API REST V1.0 Alpha

dcrausaz edited this page Mar 13, 2013 · 27 revisions

The API of the gamification plateform is described here.

Note: Arguments marked with a* are not mandatory

TODO : rajouter les GET pour les ressources, changer les status 204, mettre les descriptions pour les ressources

#Admin Side

General

Game Engine

Create game engine

POST /admin/game_engine

Values send:

{
     name: "",
     description: ""
}

Values received : Request 201 Create, Request 404 Not Found or Request 500 Internal Server Error

{
     name: "",
     description: "",
     APIKey: "",
     secureKey: ""
}

Get information about game engine GET /admin/game_engine/{id}

Values received : Request 200 OK, Request 404 Not Found or Request 500 Internal Server Error

{
     name: "",
     description: "",
     APIKey: "",
     secureKey: ""
}

Delete game engine

DELETE /admin/game_engine/{id}

Values received : Request 200 OK, Request 404 Not Found or Request 500 Internal Server Error

{

}

Manage badges

Create a new badge

POST /admin/badge

Values send:

{
     name: "",
     description: "",
     URLBadge : ""
}

Values received : Request 201 Create, Request 404 Not Found or Request 500 Internal Server Error

Location: admin/badge/{id}

{
     id: {id}, 
     name: "",
     description: "",
     URLBadge : ""
}

Get information about a badge

GET /admin/badge/{id}

Values received : Request 200 OK, Request 404 Not Found or Request 500 Internal Server Error

{
     id: {id}, 
     name: "",
     description: "",
     URLBadge : "",
     points* : <integer>
}

Delete a badge

DELETE /admin/badge/{id}

Values received : Request 200 OK, Request 404 Not Found or Request 500 Internal Server Error

{

}

Obtain the list of badges

GET /admin/list_badges

Values received : Request 200 OK, Request 404 Not Found or Request 500 Internal Server Error

{
     badges: [{
          id: {id}
          name: "",
          description: "",
          URLBadge: "",
          points* : <integer>
     }]
}

Manage levels

Create a level

POST /admin/level

Values send:

{
     name: "",
     description: "",
     points: ""
}

Values received : Request 201 Create, Request 404 Not Found or Request 500 Internal Server Error

Location: admin/level/{id}

{
     id: {id},
     name: "",
     description: "",
     points: ""
}

Get information about a level

GET /admin/level/{id}

Values received : Request 200 OK, Request 404 Not Found or Request 500 Internal Server Error

{
     id: {id},
     name: "",
     description: "",
     points: ""
}

Update a level

PUT /admin/level/{id}

Values send:

{
     name: "",
     description: "",
     points: ""
}

Values received : Request 200 OK, Request 404 Not Found or Request 500 Internal Server Error

{
     id: {id},
     name: "",
     description: "",
     points: ""
}

Delete a level

DELETE /admin/level/{id}

Values received : Request 200 OK, Request 404 Not Found or Request 500 Internal Server Error

{

}

Obtain the list of levels

GET /admin/level_list

Values received : Request 200 OK, Request 404 Not Found or Request 500 Internal Server Error

{
     levels: [{
          id: {id},
          name: "",
          description: "",
          points: ""
     }]
}

Manage events

Create a new event

POST /admin/event

Values send:

{
     name: "",
     description: "",
     event-id: "",
     event-type: ("badge" | "point")
     value: "", //if event-type is "badge" value is the badge-id, if event type is "point" value is the number of point for the event
}

Values received : Request 201 Create, Request 404 Not Found or Request 500 Internal Server Error

Location: admin/event/{id}

{
     id: {id},
     name: "",
     badgeID: "",
     type: "",
     value: "",
     levelID*: ""
}

Update a rule

PUT /admin/rule/{id}

Values send:

{
     badgeID: "",
     name: "",
     type: "",
     value: "",
     levelID*: ""
}

Values received : Request 200 OK, Request 404 Not Found or Request 500 Internal Server Error

{
     id: {id},
     name: "",
     badgeID: "",
     type: "",
     value: "",
     levelID*: ""
}

Delete a level

DELETE /admin/rule/{id}

Values received : Request 200 OK, Request 404 Not Found or Request 500 Internal Server Error

{

}

Obtain the list of rules

GET /admin/rules_list

Values received : Request 200 OK, Request 404 Not Found or Request 500 Internal Server Error

{
     rules: [{
          id: {id}
          name: "",
          type: "",
          badge: {
               id: "",
               name: "",
               URLBadge: ""
          },
          level: {
               id: "",
               name: "",
          }
     }]
}

#Application Side

User

Create a new user

POST /app/user

Values send:

{
     firstname: "",
     lastname: "",
     email: "",
     playerName: "",
     password: ""
}

Values received : Request 201 Create, Request 404 Not Found or Request 500 Internal Server Error

Location: app/user/{id}

{
     id: {id},
     apiKey: "",
     apiSecret: "",
}

Delete a user

DELETE /app/user/{id}

Values received : Request 200 OK, Request 404 Not Found or Request 500 Internal Server Error

{
     apiKeyEncrypt: ""
}

Login user

POST /app/loginUser

Values send:

{
     playerName: "",
     password : "",
     apiKeyEncrypt : ""
}

Values received : Request 200 OK, Request 404 Not Found or Request 500 Internal Server Error

{
     user: {
          id: "",
          firstname: "",
          lastname: "",
          email: "",
          playerName: "",
          score: "",
          level[{
               id: "",
               name:""
          }],
          badges[{
               id: "",
               name: "",
               URLBadge: ""
          }]
     }
}

Logout user

POST /app/logoutUser

Values send:

{
     idPlayer: "",
     apiKeyEncrypt : ""
}

Values received : Request 200 OK, Request 404 Not Found or Request 500 Internal Server Error

{

}

Call event

POST /app/callEvent

Values send:

{
     typeEvent: "",
     idPlayer: "",
     apiKeyEncrypt: "",
     timestamp: ""
}

Information about a user

GET /app/user/{id}

Values received : Request 200 OK, Request 404 Not Found or Request 500 Internal Server Error

{
     user: {
          id: "",
          firstname: "",
          lastname: "",
          email: "",
          playerName: "",
          score: "",
          level[{
               id: "",
               name:""
          }],
          badges[{
               id: "",
               name: "",
               URLBadge: ""
          }]
     }
}

Leaderbord

GET /app/user/leaderboard

Values received : Request 200 OK, Request 404 Not Found or Request 500 Internal Server Error

{
     name: ""
     description: ""
     users: {
          id: "",
          firstname: "",
          lastname: "",
          email: "",
          playerName: "",
          score: "",
          level[{
               id: "",
               name:""
          }]
     }
}
Clone this wiki locally