apuntes:servicios_web
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionLast revisionBoth sides next revision | ||
apuntes:servicios_web [2018/02/15 15:20] – [Consumir un servicio web desde Django] Santiago Faci | apuntes:servicios_web [2019/01/04 13:22] – external edit 127.0.0.1 | ||
---|---|---|---|
Line 197: | Line 197: | ||
<code java> | <code java> | ||
+ | import javax.persistence.*; | ||
/** | /** | ||
* Opinion que los usuarios tienen sobre un monumento | * Opinion que los usuarios tienen sobre un monumento | ||
Line 226: | Line 227: | ||
} | } | ||
</ | </ | ||
+ | |||
+ | > **Recordad que todas las anotaciones Java en el ejemplo anterior son clases que pertenecen al paquete ' | ||
==== El Acceso a la Base de Datos ==== | ==== El Acceso a la Base de Datos ==== | ||
Line 332: | Line 335: | ||
{{ youtube> | {{ youtube> | ||
+ | ==== Depuración de Servicios Web ==== | ||
+ | |||
+ | La primera aproximación a la hora de depurar los Servicios Web desarrollados es utilizar el navegador introduciendo las URLs esperando obtener la salida apropiada y comprobar asi que todo funciona correctamente. Es bastante cómodo pero fácil de usar y eficiente, hasta un punto. | ||
+ | |||
+ | Si lo que queremos es depurar totalmente, y de una forma profesional, | ||
+ | |||
+ | < | ||
+ | {{ postman.png }} | ||
+ | < | ||
===== Consumir un servicio web desde Django ===== | ===== Consumir un servicio web desde Django ===== | ||
+ | |||
+ | Puesto que la idea es consumir un servicio web que nos ofrecerá una serie de datos en formato JSON y nos interesaría convertirlos fácilmente a objetos Python, instalaremos el paquete // | ||
<code bash> | <code bash> | ||
- | santi@zenbook: | + | santi@zenbook: |
</ | </ | ||
+ | |||
+ | Una vez instalado el paquete tendremos que añadirlo al fichero '' | ||
<file python settings.py> | <file python settings.py> | ||
Line 346: | Line 362: | ||
. . . | . . . | ||
</ | </ | ||
+ | |||
+ | En nuestro caso vamos a concectar con un servicio web que ofrece datos sobre opiniones de usuarios de forma que obtenemos, entre otros, un titulo, un texto y una puntuación. Entonces crearemos un modelo de datos '' | ||
<file python models.py> | <file python models.py> | ||
Line 353: | Line 371: | ||
texto = models.CharField(max_length=200) | texto = models.CharField(max_length=200) | ||
puntuacion = models.IntegerField | puntuacion = models.IntegerField | ||
+ | pelicula = models.CharField(max_length=200) | ||
. . . | . . . | ||
</ | </ | ||
+ | |||
+ | Ahora, en un fichero que llamaremos '' | ||
<file python serializer.py> | <file python serializer.py> | ||
Line 363: | Line 384: | ||
class OpinionSerializer(serializers.ModelSerializer): | class OpinionSerializer(serializers.ModelSerializer): | ||
class Meta: | class Meta: | ||
- | fields = (' | + | fields = (' |
model = Opinion | model = Opinion | ||
</ | </ | ||
+ | |||
+ | Desde Django podríamos acceder al servicio web para listar todas las opiniones: | ||
+ | |||
+ | <file python views.py> | ||
+ | import requests | ||
+ | . . . | ||
+ | def opiniones(request): | ||
+ | ws = requests.get(' | ||
+ | json = ws.json() | ||
+ | serializer = OpinionSerializer(data=json, | ||
+ | if serializer.is_valid(): | ||
+ | lista_opiniones = serializer.save() | ||
+ | context = {' | ||
+ | return render(request, | ||
+ | else: | ||
+ | print(serializer.errors) | ||
+ | |||
+ | return render(request, | ||
+ | . . . | ||
+ | </ | ||
+ | |||
+ | O bien acceder a las opiniones para una pelicula determinada, | ||
<file python views.py> | <file python views.py> | ||
+ | import requests | ||
. . . | . . . | ||
def pelicula(request, | def pelicula(request, | ||
Line 386: | Line 430: | ||
</ | </ | ||
+ | En el caso de que no queramos guardarlo en la Base de Datos, podemos simplemente obtener los datos como una lista de ' | ||
+ | |||
+ | <code python> | ||
+ | . . . | ||
+ | if serializer.is_valid(): | ||
+ | lista_opiniones = serializer.data | ||
+ | // Visualiza el titulo de la primera opinion obtenida | ||
+ | print(lista_opiniones[0][' | ||
+ | . . . | ||
+ | </ | ||
+ | |||
+ | ===== Seguridad en Servicios Web ===== | ||
---- | ---- | ||
Line 400: | Line 456: | ||
- Información de un evento concreto a partir del nombre del mismo | - Información de un evento concreto a partir del nombre del mismo | ||
- Amplia el ejercicio anterior para que sea posible registrar y eliminar eventos | - Amplia el ejercicio anterior para que sea posible registrar y eliminar eventos | ||
+ | - Diseña una web con Django que muestre los resultados de los partidos de fútbol utilizando como origen de datos el servicio web desarrollado en el primer ejercicio | ||
+ | - Incorpora a la web realizada en el punto anterior un buscador por equipos de futbol (local o visitante) | ||
---- | ---- |
apuntes/servicios_web.txt · Last modified: 2021/10/21 06:56 by Santiago Faci