Les programmes suivant doivent être installés et opérationnels :
- Java JDK 1.7
- Maven 3.0
OpenAPI est approuvée pour Eclipse > 4.2.1.
- Générer le projet via maven
$ mvn eclipse:eclipse -Dwtpversion=2.0
- Importer le projet dans Eclipse
"File" -> "Import..." -> "General" -> "Existing Projects into Workspace"
- Exécuter la classe Main.java
Menu contextuel -> "Run As" -> "Java Application"
$ mvn clean package ; java -cp target/classes:"target/dependency/*" com.agile.spirit.openapi.Main
$ mvn clean compile exec:java
Quelque soit la méthode, si tout s'est bien passé, la console / le terminal affiche :
Jersey app started with WADL available at http://0.0.0.0:9998/application.wadl
Hit enter to stop it...
Pour arrêter l'application, dans la console Eclipse ou dans le terminal, presser la touche "Entrée"
Attribut | Type | Description |
note_id/ | Integer | Identifiant unique |
user_id | Integer | Référence de l'auteur |
title | String | Titre de la note |
content | String | Contenu de la note |
creation_date | Datetime | Date de création |
modification_date | Datetime | Date de dernière mise à jour |
Exemple d'une Note au format JSON :
{
"note_id" : 12345,
"user_id" : 67890,
"title" : "Titre de ma note",
"content" : "Contenu de ma note",
"creation_date" : 1361715327,
"modification_date" : 1361819642
}
Service | Verbe | Description |
notes?:owner_id | GET | Récupérer la liste des notes de l'utilisateur |
notes/all/ | GET | Récupérer la liste de toutes les notes |
notes/all/export/ | GET | Exporter la liste de toutes les notes au format PDF |
notes/search/{pattern} | GET | Récupérer les notes de l'utilisateur dont le titre ou le contenu correspondent à l'expression |
notes/details/{noteId} | GET | Récupérer le détail d'une note |
notes | POST | Ajouter une note |
notes | PUT | Mettre à jour une note |
notes/{noteId} | DELETE | Supprimer une note |
Une version de démonstration de l'API est accessible en ligne, sur Heroku : http://openapi.herokuapp.com/notes/all
Une version de démonstration d'un client HTML/JS/JQuery est accessible en ligne : http://agile-spirit.fr/OpenAPI/
Le code de la page HTML correspondante est accessible dans les sources : src/main/resources/html/index.html
loadNotes();
function loadNotes() {
$.ajax({
type: 'GET',
url: 'http://openapi.herokuapp.com/notes/all',
success: function(data) {
renderNotes(data);
}
});
}
function renderNotes(data) {
// JAX-RS serializes an empty list as null, and a 'collection of one' as an object (not an 'array of one')
var list = (data == null || data.note == null) ? [] : (data.note instanceof Array ? data.note : [data.note]);
$('#noteList .note').remove();
$.each(list, function(index, note) {
var noteHtml = '';
noteHtml = noteHtml.concat('<div id="note_' + index + '" class="note">').concat("\n");
noteHtml = noteHtml.concat(' <div class="title"><strong>' + note.title + '</strong></div>').concat("\n");
noteHtml = noteHtml.concat(' <div class="content">' + note.content + '</span>').concat("\n");
noteHtml = noteHtml.concat('</div>').concat("\n");
$('#noteList').append(noteHtml);
});
}