Service de consultation des données - Exemples de clients

Java

Technologies utilisées

Les exemples suivants sont développés à partir de la librairie jersey-client. Pour plus d'informations sur son utilisation, consultez la documentation sur le site de jersey. Téléchargez gosu-client-java pour un exemple détaillé de client développé en Java.

Exemple XML

La requête suivante envoyée en XML avec un format de réponse attendu en XML :

ClientConfig config = new DefaultClientConfig();

Client gosuClient = Client.create(config);

WebResource webResource = gosuClient.resource(GOSU_URL + "/data/xml");

GosuRequest gosuRequest = new GosuRequest();
gosuRequest.setTokenId("xxxxxxxxxxxxxxxxxxxx");
gosuRequest.setSerial("218018207682");
gosuRequest.setDate(DatatypeConverter.parseDate("2012-01-19"));
gosuRequest.setIndicator("STREAMING_ANALYSE_FLUX");

String gosuResponse = webResource.type(MediaType.APPLICATION_XML)
		.accept(MediaType.APPLICATION_XML).post(String.class,
				gosuRequest);

System.out.println(gosuResponse);

Renvoie un résultat du type :

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<gosuResponse tokenId="xxxxxxxxxxxxxxxxxxxx">
	<page>1</page>
	<pageSize>50</pageSize>
	<nbLinesTotal>17</nbLinesTotal>
	<serial>218018207682</serial>
	<date>2012-01-19</date>
	<periodType>D</periodType>
    <labels>
        <label code="DATE" name="Date" pos="1" />
        <label code="STREAMING_NIVEAU1" name="Niveau+1" pos="2" type="STRING" />
        <label code="STREAMING_NIVEAU2" name="Niveau+2" pos="3" type="STRING" />
        <label code="STREAMING_NIVEAU3" name="Niveau+3" pos="4" type="STRING" />
        <label code="STREAMING_NIVEAU4" name="Niveau+4" pos="5" type="STRING" />
        <label code="STREAMING_NIVEAU5" name="Niveau+5" pos="6" type="STRING" />
        <label code="STREAMING_FLUX" name="Flux" pos="7" type="STRING" />
        <label code="STREAMING_DOMAINE" name="Domaine" pos="8" type="STRING" />
        <label code="STREAMING_GENRE" name="Genre" pos="9" type="STRING" />
    </labels>
    <units>
        <unit code="CONNEXIONS" name="Connexions" pos="510" type="NUMBER"  />
        <unit code="LECTURES" name="Sessions" pos="11" type="NUMBER" />
        <unit code="DUREE_TOTALE" name="DUREE_TOTALE",
                "name": "Dur%C3%A9e+totale+des+sessions" pos="12" type="TIME" />
        <unit code="DUREE_MAX" name="Dur%C3%A9e+maximale" pos="13" type="TIME" />
        <unit code="DUREE_TOTALE_AFFICHAGE_PAGE" name="Dur%C3%A9e+totale+d%27affichage+page"
        	pos="14" type="TIME"  />
        <unit code="DUREE_MAX_AFFICHAGE_PAGE" name="Dur%C3%A9e+d%27affichage+maximum" pos="15" type="TIME" />
        <unit code="DUREE_MOYENNE_LECTURES" name="Dur%C3%A9e+moyenne+des+session" pos="16" type="TIME" />
    </units>
    <data>
        <row>
            <col>2012-01-19</col>
            <col>6</col>
            <col>documentaires</col>
            <col>animal</col>
            <col>saison_1_episode_5</col>
            <col>17373543</col>
            <col>Nuit+%C3%A0+l%27aquarium</col>
            <col>6</col>
            <col>integral</col>
            <col>2</col>
            <col>2</col>
            <col>1096</col>
            <col>1029</col>
            <col>1108</col>
            <col>1032</col>
            <col>548</col>
        </row>
        <row>
            <col>2012-01-19</col>
            <col>6</col>
            <col>documentaires</col>
            <col>animal</col>
            <col>saison_1_episode_1</col>
            <col>17373543</col>
            <col>Nuit+%C3%A0+l%27aquarium</col>
            <col>6</col>
            <col>integral</col>
            <col>12</col>
            <col>11</col>
            <col>8107</col>
            <col>1751</col>
            <col>97585</col>
            <col>87244</col>
            <col>737</col>
        </row>
        ...
    </data>
</gosuResponse>

Exemple JSON

La requête suivante envoyée en JSON avec un format de réponse attendu en JSON :

ClientConfig config = new DefaultClientConfig();
config.getClasses().add(DataJAXBContextProvider.class);
Client gosuClient = Client.create(config);

WebResource webResource = gosuClient.resource(GOSU_URL + "/data/json");

GosuRequest gosuRequest = new GosuRequest();
gosuRequest.setTokenId("xxxxxxxxxxxxxxxxxxxx");
gosuRequest.setSerial("218018207682");
gosuRequest.setDate(DatatypeConverter.parseDate("2012-01-19"));
gosuRequest.setIndicator("WEB_4NIVEAUX_NIVEAU4");

String gosuResponse = webResource.type(MediaType.APPLICATION_JSON)
		.accept(MediaType.APPLICATION_JSON).post(String.class,
				gosuRequest);

System.out.println(gosuResponse);

Renvoie un résultat du type :

{
  "gosuResponse" : {
    "tokenId" : "xxxxxxxxxxxxxxxxxxxx",
    "page" : 1,
    "pageSize" : 50,
    "nbLinesTotal" : 17,
    "serial" : "218018207682",
    "date" : "2012-01-19",
    "periodType" : "D",
    "labels":{
        "label":[
            {
                "code": "DATE",
                "name": "Date",
                "pos": 1,
                "type": "STRING"
            },
            {
                "code": "STREAMING_NIVEAU1",
                "name": "Niveau+1",
                "pos": 2,
                "type": "STRING"
            },
            {
                "code": "STREAMING_NIVEAU2",
                "name": "Niveau+2",
                "pos": 3,
                "type": "STRING"
            },
            {
                "code": "STREAMING_NIVEAU3",
                "name": "Niveau+3",
                "pos": 4,
                "type": "STRING"
            },
            {
                "code": "STREAMING_NIVEAU4",
                "name": "Niveau+4",
                "pos": 5,
                "type": "STRING"
            },
            {
                "code": "STREAMING_NIVEAU5",
                "name": "Niveau+5",
                "pos": 6,
                "type": "STRING"
            },
            {
                "code": "STREAMING_FLUX",
                "name": "Flux",
                "pos": 7,
                "type": "STRING"
            },
            {
                "code": "STREAMING_DOMAINE",
                "name": "Domaine",
                "pos": 8,
                "type": "STRING"
            },
            {
                "code": "STREAMING_GENRE",
                "name": "Genre",
                "pos": 9,
                "type": "STRING"
            }
        ]
    },
    "units":{
        "unit":[
            {
                "code": "CONNEXIONS",
                "name": "Connexions",
                "pos": 10,
                "type": "NUMBER"
            },
            {
                "code": "LECTURES",
                "name": "Sessions",
                "pos": 11,
                "type": "NUMBER"
            },
            {
                "code": "DUREE_TOTALE",
                "name": "Dur%C3%A9e+totale+des+sessions",
                "pos": 12,
                "type": "TIME"
            },
            {
                "code": "DUREE_MAX",
                "name": "Dur%C3%A9e+maximale",
                "pos": 13,
                "type": "TIME"
            },
            {
                "code": "DUREE_TOTALE_AFFICHAGE_PAGE",
                "name": "Dur%C3%A9e+totale+d%27affichage+page",
                "pos": 14,
                "type": "TIME"
            },
            {
                "code": "DUREE_MAX_AFFICHAGE_PAGE",
                "name": "Dur%C3%A9e+d%27affichage+maximum",
                "pos": 15,
                "type": "TIME"
            },
            {
                "code": "DUREE_MOYENNE_LECTURES",
                "name": "Dur%C3%A9e+moyenne+des+session",
                "pos": 16,
                "type": "TIME"
            }
        ]
    },
    "data" : {
        "row" : [ {
            "col":[
                "2012-01-19",
                "6",
                "documentaires",
                "animal",
                "saison_1_episode_5",
                "17373543",
                "Nuit+%C3%A0+l%27aquarium",
                "6",
                "integral",
                "2",
                "2",
                "1096",
                "1029",
                "1108",
                "1032",
                "548"
                ]
            },
            {
            "col":[
                "2012-01-19",
                "6",
                "documentaires",
                "animal",
                "saison_1_episode_1",
                "17373201",
                "Comme+chien+et+chat",
                "6",
                "integral",
                "12",
                "11",
                "8107",
                "1751",
                "97585",
                "87244",
                "737"
                ]
            },...
        ]
    }
  }
}