Ayuda con Práctica - PHP+REST

Aidanciyo

Saludos.

¿Alguien sabe donde podría encontrar a alguien que me ayudara a completar una práctica? (Si, pagaría y todo)

Resumen.
Tengo que hacer una APi con estilo arquitectónico REST y no se ni como empezar, y luego utilizarla para cosas tipo, insertar, consultar, alumnos etc.
Nos han cascado esta práctica sin explicarnos nada de APIS ni REST...

Cualquier ayuda me vale.

spoiler
smintcs

Que cosas de todas las que salen ahí te suena? Tienes mas o menos claro lo que es una API, lo que es REST, como va lo de las tablas y el phpadmin?

Te suena si se pueden usar frameworks? La parte de la base de datos saber como va? Las consultas desde php y eso me refiero.

Según el nivel que tengas ya te comento un poco más, pero aunque sea muy básico tranquilo que no es algo muy chungo y te apañarás.

Aidanciyo

Se usar php(megabasico) y phpmyadmin.

Se hacer un login basico por ejemplo en php. Y manejar variables.

Conectar la base de datos, y hacer alguna consulta si, pero solo lo he hecho 1 o 2 veces.

Pero de ahi a saber como cumplir la arquitectura REST, hacer las funciones etc... es que nose ni como empezar.

smintcs

Te comento un poco por encima puesto que php no es mi especialidad pero en el fondo la estructura es la misma siempre:

Todo eso de arquitectura REST es un tipo de servicio. Estaba buscando alguna de ejemplo pero todas las que se me ocurren necesitan registrarse y es un poco lioso, te dejo otro ejemplo para que te hagas una idea de lo que vas a conseguir.

https://api.twitter.com/1.1/statuses/user_timeline.xml

Si bien la respuesta es un error por eso mismo de la cuenta que hace falta, sirve para entender lo que vas a hacer.

Vas a tener 4 direcciones que cuando entren ahí van a darle al usuario unos xml con lo que se pida, ya sea alumnos o asignaturas o lo que sea.

Cuando superaplicacion/alumnos mande una peticion GET se llamara a get_alumnos() y este devuelve un String con el xml o lo que sea.
Cuando superaplicacion/alumnos mande una peticion POST se llamara a alta_auto().

La parte en la que no te puedo ayudar ahora es como hacer que las direcciones vayan a esos métodos porque eso es algo de php que no se hacer, de una mala se podría mirar que fijo que es bastante sencillo.

Al turrón, lo que deberías hacer es montar lo de la base de datos con el phpmyadmin y meter valores para ir probando cosas, y luego hacerte 4 funciones, las 4 que te salen ahí.

Empieza por una función que sea get_alumnos();

Dentro de esa función lo que haces es pedir a la base de datos los alumnos y devolverlo como String o como lo que quieras.

La otra es /alumno/{expediente} que llama a get_alumno($expediente), esta lo mismo
tienes la funcion get_alumno($expediente) que consulta en la base de datos el alumno con ese expediente y lo devuelve.

si te llega superaplicacion/alumno/50 devuelves los datos del alumno con expediente 50 haciendo una llamada a get_alumno(50).

Luego cuando ya tengas eso ya miras como hacer para que en vez de un String bruto lo meta en el xml que te pida.

A ver si te he aclarado algo aunque sea un poco. Seguramente en lo que useis en clase tengas todo mas explicado y con ejemplos o mas tecnico o lo que sea, esto es un poco la idea general.

Cada url de la api llama a un metodo php que habla con la base de datos y devuelve un xml con lo que se pide.

Aidanciyo

Lo he entendio, ya habia buscado cosas y había llegado a esas conclusiones mi problema principal es empezar, como empezar a programar eso en un php.

JuAn4k4

Haber ido a clase, tu lo que quieres es la solución a la practica, que te has dedicado a copiar&pegar aqui.

Si no quieres estudiar, no estudies, pero no nos hagas perder el tiempo.

Empieza por crear un fichero "alumno.php" el resto te lo explica en el enunciado, que dudo hayas leido.

1 respuesta
Aidanciyo

Es una pena que sea A DISTANCIA. #6 sino quieres ayudar puerta.

Solo he pedido ayuda para empezar, y por supuesto pego todo el enunciado, a caso prefieres que escriba una línea y ya está.

1 respuesta
txandy

#1 ¿Pero sabes algo de PHP? O os dieron el manual y suerte?

Con la variable $_SERVER puedes sacar la URL por donde acceden, si es por GET o por POST a partir de hay lo tienes todo encaminado.

Tip: var_dump($_SERVER) puede ser tu mejor amigo, strops supongo que tambien lo necesitaras...

Aidanciyo

He aprendido lo que se de php en 1 mes, pero meten una caña que flipas XD

A ver si mañana saco un rato que con el curro no tengo tiempo (#6 se cree que soy un nini)

CCiRviNe
  • Si utilizas apache: para hacer las Pretty URLs necesitas el mod_rewrite
  • El tipo de método con el que llaman lo puedes saber con $_SERVER['REQUEST_METHOD'] (GET/POST)
  • La url la puedes saber con $SERVER['REQUEST_URI'] o $SERVER['PATH_INFO'] (/alumno/expediente/matriculas), haciendo un explode podrías poner en un array facilmente accesible.
  • Para los pares atributo-valor echa mira JSON (application/json)
  • Para leer el JSON de los post: file_get_contents("php://input")
  • json_encode y json_decode serán tus amigos

El resto es mirar cual es el path del que te han llamado y el tipo de método y actuar sobre la base de datos en consecuencia.

JuAn4k4

#7 También hay clase a distancia, te dan cosas y tal.

En lugar de copiar y pegar el enunciado, se preguntan dudas, ¿porque? porque así da la impresión que al menos te has leido algo y lo has intentado.

Copiar y pegar el enunciado indica que no has tocado nada.

grivcon

Slim Framework -> Profit!

Usuarios habituales

  • grivcon
  • JuAn4k4
  • CCiRviNe
  • Aidanciyo
  • txandy
  • smintcs