This application is a J2EE/Spring application, which aims to store RPG persona.


Datas stored

A less as possible datas are stored. So, the application does not calculate anything. It just stores data.

  • gamesystem : a RPG rule set,
  • universe : a RPG background,
  • caracteristic : a basic information withing the gamesystem,
  • personatype : the jobs and/or classes available in an universe,
  • portage : the application of a gamesystem witn an universe,
  • caracteristicmodified : the override of a caracteritic, inside a portage,
  • persona : a persona played using a portage
  • personacaracteristic : the value of the caracteristicmodifieds for a specific persona.

In this way, if you want to play in a specific universe, but don't like the official system, you can change to another system, for example, playing in a Dungeons & Dragons universe, with the rules of Cthulu.

Enjoy, and have fun !

This application is based on a API, and stores the informations, and gives back answers to the available requests.

To make it easier, we provide you an unified set of data routes, for which you would have 3 elements to provide.

We also make use a lot of the HTTP verbs, to differenciate each route.

In the menu, you will find the different ways to use our application.

If you have any problem with it, you are free to send us issues via Github.

The API is JSON based, so you will always have a HTTP 200 code for each request, except in case of server failure.

The response is always structured in the same way :

{
    "requestTime": 0,
    "response": [],
    "errors": []
}

requestTime is a Timestamp value indicating the moment the server sent back a response.

response is an array containing the request content.

errors is an array containing your request errors. Let's hope you won't have any.

In the following pages, you will have a short description of the major entities accessible with the API.

For each entity, you will have a keyword provided, to use in the routes, to define the type of entity you want the access of.

Below each, you will have a table describing the JSON object used.

The entity are listed alphabetically, for an easier access.

Informations

Description
A caracteristic is the description of a caracteristic, as the name implies, as well as the skills that can be described or evaluated in a GameSystem.
Keyword
caracteristic

Attributes

Attribute Type Description
idIntegerThe entity identifier
gamesystemInteger/ObjectInteger : a reference to the gamesystem the entity is belonging to.
Object : See the gamesystem description.
typeStringThe type of data stored.
Authorized values are :"string","integer","boolean".
defaultLabelStringThe label of the caracteristic.
minStringThe minimum value of the caracteristic.
maxStringThe maximum value of the caracteristic.

Informations

Description
A caracteristicmodified is an override of a caracteristic label for a specific portage
Keyword
caracteristicmodified

Attributes

Attribute Type Description
idIntegerThe entity identifier
caracteristicObjectThe referenced caracteristic this entity is overriding.
labelNull/StringIf null, the the label has not been overridden.
portageIntegerThe ID of the portage using this entity.

Informations

Description
A set of caracteristics and basic informations about a game set of rules.
Keyword
gamesystem

Attributes

Attribute Type Description
idIntegerThe entity identifier
nameStringThe entity full name
shortNameStringThe entity short name
urlStringIf the System has a website, it will provided in this field.
mediaStringThe address of a description image, within our image repository.
portageListArrayIn complete mode, a list of portage entities, otherwise the list of their IDs.
caracteristicListArrayIn complete mode, a list of caracteristic entities, otherwise the list of their IDs.

Informations

Description
The representation of a RPG character.
Keyword
persona

Attributes

Attribute Type Description
idIntegerThe entity identifier
ownerIntegerA reference to the User who created the persona
isPublicBooleanDefines if the persona can be used by other people or not.
firstNameStringThe persona first name.
lastNameStringThe persona last name.
lastUpdateTimestampThe moment of the last update.
creationTimeTimestampThe moment of the creation.
mediaStringThe address of a description image, within our image repository.
typeIntegerA reference to the personatype used by this entity.
portageIntegerA reference to the portage used by this entity.
genderStringThe gender of the persona.
Actually authorized values are : "female","male","other","transgender","undefined".
caracteristicListArrayIn complete mode, a list of personacaracteristic entities, otherwise the list of their IDs.
descriptionStringA description of the persona, its background.

Informations

Description
The application of a caracteristicmodified for a persona.
Keyword
personacaracteristic

Attributes

Attribute Type Description
idIntegerThe entity identifier
valueStringThe value applied to this caracteristicmodified by this persona.
caracteristicMiDInteger/ObjectA reference towards the caracteristicmodified used, or an Object representing it in complete mode.

Informations

Description
The jobs and/or classes in use inside a universe.
Keyword
personatype

Attributes

Attribute Type Description
idIntegerThe entity identifier
nameStringThe name of the job/class.
universeIntegerA reference towards the universe.

Informations

Description
The application of a gamesystem on a universe.
Keyword
portage

Attributes

Attribute Type Description
idIntegerThe entity identifier
universeIntegerA reference towards the universe.
gamesystemIntegerA reference towards the gamesystem.
creationTimeTimestampThe moment of the creation.
personaListArrayThe list of persona created with this portage
caracteristicListArrayThe list of caracteristicmodified to use with this portage.

Informations

Description
Definition of a universe in the application.
Keyword
universe

Attributes

Attribute Type Description
idIntegerThe entity identifier
nameStringThe universe name
descriptionStringThe universe description
mediaStringThe address of a description image, within our image repository.
creationTimeTimestampThe moment of the creation.
portageListArrayThe list of portage using this universe.
personaTypeListArrayThe list of personaType that can be used.
POST /api/:keyword

Change the :keyword to any of provided ones.

As a response, you will get the result of a GET on your freshly created entity.

The media is always optional.

Entity keywordAttributes
caracteristicgamesystem, defaultLabel, type, min, max
caracteristicmodifiedcaracteristic, label
gamesystemname, shortName, url, media
personatype, owner, isPublic, firstName, lastName, description, gender, portage
personatypename, universe
portagegamesystem, universe
universename, description, media
GET /api/:keyword/:id/complete

Change the :keyword to any of provided ones.

Change the :id to the identifier value of the entity you want.

The /complete part is optionnal. Using it will, in most cases, load a "not complete" representation of any linked entity within the one you want.

Replace /complete by /all to get a list of all publicly available entity of the requested type.

POST /api/:keyword/:id

Change the :keyword to any of provided ones.

Change the :id to the identifier value of the entity you want to update.

As a response, you will get the result of a GET on your freshly updated entity.

All fields are optional, so you can send a post request, with just the id, even it's useless in itself.

Entity keywordAttributes
caracteristicdefaultLabel, type, min, max
caracteristicmodifiedlabel
gamesystemname, shortName, url, media
personatype, isPublic, firstName, lastName, description, gender
personatypename
universename, description, media
DELETE /api/:keyword/:id

Change the :keyword to any of provided ones.

We use a data-cascade to delete related entities.

As a response, you will get a boolean value validating or not your request.

Change the :id to the identifier value of the entity you want.