Documente Academic
Documente Profesional
Documente Cultură
API tipo REST cuál es mi IP por David Enamorado Guzmán, Yesenia Doria se distribuye bajo una Licencia Creative
Commons Atribución-CompartirIgual 4.0 Internacional.
V.1.1
Santiago de Chile - 2020
Aplicaciones
Empresariales
API tipo REST Technology
World Class
¿Cuál es mi IP?
Contexto
Crear una API tipo REST que consume a otra API externa de geolocalización de IP.
Aplicaciones
Empresariales
API tipo REST Technology
World Class
¿Cuál es mi IP?
1. Nuevo Proyecto
2. Selección de la categoría del
Proyecto, se debe
seleccionar Java con Maven.
3. El tipo de Proyecto, en este
caso es un Web Application.
4. Clic en siguiente (Next)
• Creación de
una nueva
clase Java, la
cual contendrá
el recurso de la
API.
Aplicaciones
Empresariales
API tipo REST Technology
World Class
¿Cuál es mi IP?
1. Se ingresa el
nombre de la
Clase Java
2. Se debe ubicar
la nueva clase
Java en el
paquete
designado para
los Recursos de
la API
(root.resource
s>)
Ubicación de la nueva
clase Java en el
paquete
root.resources la cual
contendrá el recurso
de la API.
@Path("/")
public class MiIP {
@Context
HttpServletRequest request;
Aplicaciones
Empresariales
API tipo REST Technology
World Class
¿Cuál es mi IP?
@GET
@Path("/ip")
@Produces({MediaType.TEXT_HTML, MediaType.TEXT_PLAIN, MediaType.APPLICATION_JSON,})
public Response getMiIP() {
String miip = request.getHeader("X-Forwarded-For");
return getMyIPGenerico(miip);
}
@GET
@Path("/ip/{ip}")
@Produces({MediaType.TEXT_HTML, MediaType.TEXT_PLAIN, MediaType.APPLICATION_JSON,})
public Response getMyIPParametro(@PathParam("ip") String miip) {
return getMyIPGenerico(miip);
}
if (miip == null) {
miip = request.getRemoteAddr();
}
/**
* Java API for JSON Processing | JSR 374 Specification
* https://javaee.github.io/jsonp/
*/
JsonObject jsonLocalHostNoAplica = Json.createObjectBuilder()
.add("api_geo", "localhost no aplica").build();
return Response.ok(jsonRespuesta.asJsonObject()).build();
}
}
La clase creada en su
cabecera tendrá los
siguientes import.
Aplicaciones
Empresariales
API tipo REST Technology
World Class
¿Cuál es mi IP?
Para tener la
funcionalidad de
identificar el país de
origen de la IP, es
requerido consumir
una API externa
llamada ip2country.
https://www.ip2country.i
nfo/
Además la respuesta
donde se indica la IP
y el país del cliente
se usa la API JSON P
(https://javaee.github.io/j
sonp/) que permite
crear y procesar
objetos JSON.
El X-Forwarded-For
es la forma de
obtener la IP del
cliente cuando se usa
un Proxy o
balanceador de
carga.
Aplicaciones
Empresariales
API tipo REST Technology
World Class
¿Cuál es mi IP?
Lo primero es eliminar el
index.html que se crea con el
proyecto.
Aplicaciones
Empresariales
API tipo REST Technology
World Class
¿Cuál es mi IP?
Crear una nueva página JSP
<title>Mi IP</title>
</head>
<style>
div.center{
margin-left: auto;
margin-right: auto;
text-align: center;
}
</style>
<div class="center">
<br><img src="https://cdn2.iconfinder.com/data/icons/whcompare-servers-web-hosting/50/dedicated-ip-
address-512.png" width="120" height="120" alt="ip"/>
<br>
<h1>IP: <%= miip%></h1>
<br>
<div class="card text-white bg-dark mb-3 center" style="max-width: 30rem;">
<div class="card-header center">Formas de usar la API de consulta IP</div>
<div class="card-body center">
<h5 class="card-title">Para consultar mi IP</h5>
<a href= <%=urlBase%>><%=urlBase%></a>
<h5 class="card-title">Consultar por otra IP</h5>
<p class="card-title">Ejemplo: Uso con 1.1.1.1 DNS </p>
<a href= <%=urlBase + "1.1.1.1"%> > <%=urlBase + "/1.1.1.1"%> </a>
</div>
</div>
<p>Para la Geolocalización de las IP es usado el servicio externo de deip2country </p>
</div>
</body>
</html>
Aplicaciones
Empresariales
API tipo REST Technology
World Class
¿Cuál es mi IP?
Imagen de referencia
del Código en
Netbeans
Al usar ejecutar en
local y utilizar localhost
en lugar de una IP es
normal que se muestre
0:0:0:0:0:0:0:1
Aplicaciones
Empresariales
API tipo REST Technology
World Class
¿Cuál es mi IP?
Al ejecutar el proyecto
en local y acceder por
medio de la dirección
IP de la red local
Aplicaciones
Empresariales
API tipo REST Technology
World Class
¿Cuál es mi IP?
Ahora se debe
desactivar la ejecución
en el servidor de
aplicaciones Payara
Server para que se
pueda ejecutar con
Payara Micro
Aplicaciones
Empresariales
API tipo REST Technology
World Class
¿Cuál es mi IP?
Clic en Repository
Aplicaciones
Empresariales
API tipo REST Technology
World Class
¿Cuál es mi IP?
Pagina para ingresar el
nombre del repositorio
de la aplicación.
Para inicializar el
proyecto con git, se
debe ubicar el
directorio raíz del
proyecto y ejecutar el
comando git init
Es recomendado crear
el fichero .gitignore
En este fichero se
almacena el listado de
ficheros o directorios
que se excluirán del
control de versiones.
En la imagen se
aprecia CRLF
Aplicaciones
Empresariales
API tipo REST Technology
World Class
¿Cuál es mi IP?
Con el comando git
status se puede ver el
estado del Branch
(rama).
1. Comando que
confirma los
cambios en el
control de
versiones.
2. Indica que debe
configurar sus
credenciales
Se agrega la
configuración de mail
y nombre los cuales se
usarán para identificar
los cambios
confirmados en el
repositorio
1. Comando de
confirmación.
2. Listado de ficheros
que se agregaron
al control de
cambios.
Ahora ya están
registrados los
cambios al repositorio
en Bitbucket.