<commit_before># Documentation REST

## Introduction

LocalizeTeaPot est une application permettant à ses usagers de renseigner leur position ainsi que de récupérer celles
de leurs amis. 

L'application propose une API REST pour la communication entre le client et le serveur dont voici les fonctionnalitées :

## Authentification

Pour s'authentifier, l'API utilise les méthodes d'authentifications HHTP.

* Lorsque l'authentification échoue, une erreur 403 est envoyée. 
* Losrque aucune authentification n'est effectuée, une erreur 404 est envoyée.

## Liste des sites implémentant l'API

* LocalizeTeaPot Serveur
 * URL de l'api : https://jibiki.univ-savoie.fr/ltpdev/rest.php

## Les statuts

### Récupération

* **URL** /api/1/statuses
* **Méthode** GET
* **Return**
 * 200 OK & list
 * 204 No Content
 * 403 Forbidden
 * 404 Not Found

#### Exemple

##### JSON

~~~~~~~~~~~~~{.json}
{
	"ltp":
	{
		"application":"LocalizeTeaPot server",
		"statuses":
		[
			{
				"lat" : "24.242424",
				"lon" : "2.4",
				"content" : "Je suis maintenant là.",
				"time":"2012-11-17T18:26:00+01:00"
			}
			,
			{
				"lat" : "42.424242",
				"lon" : "4.2",
				"content" : "Je suis ici.",
				"time":"2012-11-16T15:13:14+01:00"
			}
		]
	}
}
~~~~~~~~~~~~~

##### Exemple d'utilisation

    curl --user Utilisateur https://jibiki.univ-savoie.fr/ltpdev/rest.php/api/1/statuses

### Nouveau statut

* **URL** /api/1/statuses
* **Méthode** POST
* **Return**
 * 200 OK
 * 400 Bad Request
 * 403 Forbidden
 * 404 Not Found

#### Exemple

##### JSON

Non implémenté pour le moment

~~~~~~~~~~~~~{.json}
{
	"ltp":
	{
		"application":"Client LTP",
		"status":
		{
			"lat" : "24.242424",
			"lon" : "2.4",
			"content" : "Mon nouveau statut."
		}
	}
}
~~~~~~~~~~~~~

##### Exemple d'utilisation

    curl --user Utilisateur http://jibiki.univ-savoie.fr/ltpdev/rest.php/api/1/statuses -X POST -d '{"ltp":{"application":"Client LTP","status":{"lat" : "24.242424","lon" : "2.4","content" : "Mon nouveau statut."}}}'

## Les Amis

### Récupération

* **URL** /api/1/friends
* **Méthode** GET
* **Return**
 * 200 OK & liste
 * 403 Forbidden
 * 404 Not Found

#### Exemple

##### JSON

En cours d'implémentation

~~~~~~~~~~~~~{.json}
{
	"ltp":
	{
		"application":"LocalizeTeaPot server",
		"friends":
		[
			{
				"username":"Gnuk",
				"lat" : "24.242424",
				"lon" : "2.4",
				"content" : "Je suis maintenant là.",
				"time":"2012-11-17T18:26:00+01:00"
			}
			,
			{
				"username":"Giu",
				"lat" : "42.424242",
				"lon" : "4.2",
				"time":"2012-12-13T17:12:00+01:00"
			}
			,
			{
				"username":"James"
			}
		]
	}
}
~~~~~~~~~~~~~

    curl --user Utilisateur http://jibiki.univ-savoie.fr/ltpdev/rest.php/api/1/friends

### Demande d'amis

* **URL** /api/1/friends/want
* **Méthode** POST
<commit_msg>Transformation de https en http pour la doc REST<commit_after># Documentation REST

## Introduction

LocalizeTeaPot est une application permettant à ses usagers de renseigner leur position ainsi que de récupérer celles
de leurs amis. 

L'application propose une API REST pour la communication entre le client et le serveur dont voici les fonctionnalitées :

## Authentification

Pour s'authentifier, l'API utilise les méthodes d'authentifications HHTP.

* Lorsque l'authentification échoue, une erreur 403 est envoyée. 
* Losrque aucune authentification n'est effectuée, une erreur 404 est envoyée.

## Liste des sites implémentant l'API

* LocalizeTeaPot Serveur
 * URL de l'api : https://jibiki.univ-savoie.fr/ltpdev/rest.php

## Les statuts

### Récupération

* **URL** /api/1/statuses
* **Méthode** GET
* **Return**
 * 200 OK & list
 * 204 No Content
 * 403 Forbidden
 * 404 Not Found

#### Exemple

##### JSON

~~~~~~~~~~~~~{.json}
{
	"ltp":
	{
		"application":"LocalizeTeaPot server",
		"statuses":
		[
			{
				"lat" : "24.242424",
				"lon" : "2.4",
				"content" : "Je suis maintenant là.",
				"time":"2012-11-17T18:26:00+01:00"
			}
			,
			{
				"lat" : "42.424242",
				"lon" : "4.2",
				"content" : "Je suis ici.",
				"time":"2012-11-16T15:13:14+01:00"
			}
		]
	}
}
~~~~~~~~~~~~~

##### Exemple d'utilisation

    curl --user Utilisateur https://jibiki.univ-savoie.fr/ltpdev/rest.php/api/1/statuses

### Nouveau statut

* **URL** /api/1/statuses
* **Méthode** POST
* **Return**
 * 200 OK
 * 400 Bad Request
 * 403 Forbidden
 * 404 Not Found

#### Exemple

##### JSON

Non implémenté pour le moment

~~~~~~~~~~~~~{.json}
{
	"ltp":
	{
		"application":"Client LTP",
		"status":
		{
			"lat" : "24.242424",
			"lon" : "2.4",
			"content" : "Mon nouveau statut."
		}
	}
}
~~~~~~~~~~~~~

##### Exemple d'utilisation

    curl --user Utilisateur https://jibiki.univ-savoie.fr/ltpdev/rest.php/api/1/statuses -X POST -d '{"ltp":{"application":"Client LTP","status":{"lat" : "24.242424","lon" : "2.4","content" : "Mon nouveau statut."}}}'

## Les Amis

### Récupération

* **URL** /api/1/friends
* **Méthode** GET
* **Return**
 * 200 OK & liste
 * 403 Forbidden
 * 404 Not Found

#### Exemple

##### JSON

En cours d'implémentation

~~~~~~~~~~~~~{.json}
{
	"ltp":
	{
		"application":"LocalizeTeaPot server",
		"friends":
		[
			{
				"username":"Gnuk",
				"lat" : "24.242424",
				"lon" : "2.4",
				"content" : "Je suis maintenant là.",
				"time":"2012-11-17T18:26:00+01:00"
			}
			,
			{
				"username":"Giu",
				"lat" : "42.424242",
				"lon" : "4.2",
				"time":"2012-12-13T17:12:00+01:00"
			}
			,
			{
				"username":"James"
			}
		]
	}
}
~~~~~~~~~~~~~

    curl --user Utilisateur https://jibiki.univ-savoie.fr/ltpdev/rest.php/api/1/friends

### Demande d'amis

* **URL** /api/1/friends/want
* **Méthode** POST

{'fraction_non_alphanumeric': 0.20416147963720435, 'fraction_numerical': 0.06331139960874978, 'mean_word_length': 3.342857142857143, 'pattern_counts': {'":': 38, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 6, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1381053', 'n_tokens_mistral': 2701, 'n_tokens_neox': 2247, 'n_words': 484}