Diferència entre revisions de la pàgina «Web Services: exemple Escacs»

De Cacauet Wiki
Salta a la navegació Salta a la cerca
Línia 35: Línia 35:
 
|+ API
 
|+ API
 
! Endpoint
 
! Endpoint
! IN
+
! IN (GET o JSON)
! OUT
+
! OUT (JSON)
 
|-
 
|-
 
| /partida
 
| /partida
| ''pid'': id de partida
+
| ''pid'': id de partida (GET)
 
| ''status'': ok/error<br>''msg'': detalls del error<br>''partida'': totes les dades de la partida
 
| ''status'': ok/error<br>''msg'': detalls del error<br>''partida'': totes les dades de la partida
 
|-
 
|-
Línia 47: Línia 47:
 
|-
 
|-
 
| /juga
 
| /juga
| ''uid_adversari'': uid de la persona amb qui ens volem enfrontar
+
| ''uid_adversari'': uid de la persona amb qui ens volem enfrontar (GET)
 
| ''status'': ok/error<br>''msg'': detalls del error<br>''partida'': totes les dades de la partida
 
| ''status'': ok/error<br>''msg'': detalls del error<br>''partida'': totes les dades de la partida
 
|-
 
|-

Revisió del 18:48, 20 març 2015

Article anterior: Web Services

Objectius

Proposem un exercici amb web services. Volem fer un joc d'escacs disponible per diversos clients (aplicació browser desktop, aplicació mòbil, etc.)

En l'anterior article Web Services es proposa treballar amb MongoDB i utilitzar el framework CherryPy. Fes-li un cop d'ull per veure exemple pertinent.

Passem a especificar les diverses funcions que necessitem per implementar el WS:


Objectes del servei

Els objectes de més alt nivell (usuaris, partides) corresponen a les col·leccions de MongoDB.

  • Usuari:
    • uid
    • Nick
    • email
    • estat
  • Partida:
    • pid
    • jugador_blanques: uid
    • jugador_negres: uid
    • fitxes: [] array amb les diverses peces del taulell i les seves posicions
      • { color:'b', tipus:'peo', fila:2, col:3 }
      • ...
  • torn: nº de torn (parells=mou blanca, senars=mou negra)
  • inici: data + hora d'inici de partida (timestamp)


Especificació

API
Endpoint IN (GET o JSON) OUT (JSON)
/partida pid: id de partida (GET) status: ok/error
msg: detalls del error
partida: totes les dades de la partida
/en_espera status: ok/error
msg: detalls del error
usuaris: [] array d'usuaris en espera
/juga uid_adversari: uid de la persona amb qui ens volem enfrontar (GET) status: ok/error
msg: detalls del error
partida: totes les dades de la partida
/login nick: pseudònim de l'usuari
email: adreça electrònica
msg
status: ok/error
msg: detalls del error
usuaris: [] array d'usuaris en espera
/mou pid: id de partida
fila_inici
col_inici
fila_dst
col_dst
status: ok/error
msg: detalls del error
partida: totes les dades de la partida


Recomanacions

  • Instal·la mongodb, pymongo i cherrypy
  • Fes un script que crei una partida amb les figures, etc.