Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-12-2019
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.457
Poder: 20
newtron Va camino a la fama
Hacer llamada a API

Hola a tod@s.


Me han encargado hacer una serie de llamadas a un banco de datos para recibir una serie de información y me dicen que tengo que hacer llamadas mediante una API.


El tema es que la única información que me dan es un API-KEY y una descripción de las llamadas posibles pero no mucho más y estoy un poco perdido. Pongo a continuación un ejemplo de una de ellas a ver si a alguien le suena cómo hacer este tipo de llamadas.


Gracias y un saludo



__________________
Be water my friend.
Responder Con Cita
  #2  
Antiguo 24-12-2019
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola a todos,

Si no me equivoco, se trata de hacer llamadas HTTP a las URL que te indican, proporcionando los argumentos necesarios de entrada (como pueda ser el API-KEY), y, recibiendo la respuesta correspondiente del servidor. Podrías acaso probar con "simples" llamadas HTTP GET o POST, según corresponda (en la imagen pones una URL que hay que llamar mediante GET). Lo que puede que te encuentres (no me queda del todo claro) es que el servidor espere un JSON, en lugar de los posibles enviados por GET o POST. Si es el caso, podrías echar un vistazo a esta respuesta de Remy Lebeau en StackOverflow, donde se muestra cómo preparar una llamada HTTP POST usando un "cuerpo" JSON. Ahora mismo ignoro si sería igual para un HTTP GET, pero, diría que sí, que, por ahí pueden ir los tiros.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 24-12-2019
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola de nuevo todos,

En definitiva... se trata de seguir la documentación que te han dado: tienen que explicarte ahí el tipo de llamadas HTTP que hay que realizar, cómo proporcionar el "API KEY" (que vendría a ser una contraseña para que nadie pueda usar el API, sin una de estas "API KEY"), bien como uno de los posibles valores GET o POST, bien en un "cuerpo" JSON... y a hacer pruebas... a ver qué resultados obtienes, si son los esperados, etc. Pero vaya, hasta donde yo llego (que no es mucho) estamos hablando de eso: hacer llamadas HTTP y procesar su respuesta.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #4  
Antiguo 24-12-2019
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.457
Poder: 20
newtron Va camino a la fama
Dec.


Gracias por tu respuesta. Ya estaba haciendo llamadas GET con este código:


Código Delphi [-]
procedure TForm1.Button2Click(Sender: TObject);
var
http: variant;
sAux: String;
begin
 sAux:='https://api.aunabase.com/v1/marcas?api_key=xxxxxxxxxxxxxxxxxxxxx';
 http:=createoleobject('WinHttp.WinHttpRequest.5.1');
 http.open('GET', sAux, false);
 http.send;
 showmessage(http.responsetext);
end;


y me da este error:


{"error":true,"message":"Falta token de autorizaci\u00f3n"}


Imagino que el API KEY dichoso se enviará de otra manera pero no averiguo cómo.


Saludos
__________________
Be water my friend.
Responder Con Cita
  #5  
Antiguo 24-12-2019
pablog2k pablog2k is offline
Miembro
 
Registrado: may 2017
Posts: 84
Poder: 7
pablog2k Va por buen camino
estás familiarizado con Postman? puedes probar ahí las llamadas a la API, para ver donde exactamente tienes que meter tu APIKEY
si con un GET y tu URL https://api.aunabase.com/v1/marcas?a...xxxxxxxxxxxxxx, postman da error, ya sabes que igual tienes que meterlo en otro sitio, como por ejemplo como autorización (segunda pestaña despues de params). Si además es de tipo HTTPs, hay que añadir más cosas todavía en delphi.
primero averigua exactamente como usar la APIKEY, y ya luego vas viendo como pasarlo a delphi
Responder Con Cita
  #6  
Antiguo 24-12-2019
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola a todos,

Acaso no sería mala idea probar como dice Pablo, esto es, utilizar algún servicio que te permita probar diferentes llamadas HTTP más o menos rápidamente. ¡Sobre todo si no sabemos dónde tenemos que poner los argumentos o el "API KEY", etc.! Eso debería estar más o menos claro en la documentación del API en cuestión.

Por otro lado, el error que te aparece... diríase que pudiera estar relacionado con la autenticación "OAuth". Ya siento no saber ahora mismo cómo usar esta autenticación en Delphi, tendrías que buscar sobre esto... tal vez sea cuestión de establecer las cabeceras HTTP de la petición como se deba.

Sin embargo, no has mencionado "OAuth" desde un principio... y esto es algo, que, de ser necesario, también debería estar documentado en la API en cuestión...
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #7  
Antiguo 26-12-2019
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.457
Poder: 20
newtron Va camino a la fama
Dec.


La documentación no me da más información que lo que comento, la lista de posibles llamadas y el API-KEY. Efectivamente creo que el problema es que hay que saber cómo enviar ese API-KEY y ese "OAuth" ni me suena. Probaré también con "Postman" a ver qué averiguo.


Gracias a los dos por vuestros comentarios.
__________________
Be water my friend.
Responder Con Cita
  #8  
Antiguo 26-12-2019
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola a todos,

Si fuese posible... contacta con quien lleve el API en cuestión, porque, acaso sea posible probar a poner el "API-KEY" en diferentes lugares... pero, no parece lo suyo. "OAuth" es un método de autenticación, si se puede decir así, que, juega con "tokens". Como el error que has puesto menciona "tokens"... acaso pueden ir por ahí los tiros... por el método de autenticación.

Es complicado, sin más datos, poder ir más allá. Yo probaría a enviar el "API-KEY" por HTTP GET (en la misma URL) y/o por HTTP POST... pero claro, es que, para empezar, es menester saber el campo en que tiene que enviarse dicha información. ¿Será "apikey"? ¿Será "api-key"? ¿Será de otra forma?
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #9  
Antiguo 27-12-2019
wilcg wilcg is offline
Miembro
 
Registrado: abr 2014
Posts: 107
Poder: 10
wilcg Va por buen camino
newtron,

Yo tengo un problema parecido con el consumo de una api, esto es nuevo para mi ya que sigo siendo novato. Quiero compartir algo que he podido investigar aver con la experiencia que hay aquí en el grupo sea mas fácil el entendimiento.
el caso es enviar un JSON para obtener como respuesta un JSON, he estado probando con el REST Debugger de delphi y esta pagina puede ser de ayuda, no lo he entendido bien pero creo que ayuda a generar un JSON de una forma automatizada mediante una clase
https://jsontodelphi.com/
Responder Con Cita
  #10  
Antiguo 27-12-2019
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.457
Poder: 20
newtron Va camino a la fama
Gracias wilcg.


Le echaremos un vistazo pero de momento voy a intentar contactar con el soporte de la web para que me den más información al respecto. Seguramente habrá que enviar la api-key de alguna forma determinada que en la documentación no se refleja.


Gracias a todos.
__________________
Be water my friend.
Responder Con Cita
  #11  
Antiguo 02-01-2020
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.233
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Si pruebas con RESTDebugger, seguramente falta enviar el parámetro de la API.





Prueba a definir el parámetro que el formato que te den:
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #12  
Antiguo 02-01-2020
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.457
Poder: 20
newtron Va camino a la fama
Gracias Germán, no conocía esa herramienta.


Estoy probando e igualmente sin resultados. Sigo a la espera de que me digan cómo leches enviar el api-key.


Saludos
__________________
Be water my friend.
Responder Con Cita
  #13  
Antiguo 02-01-2020
pablog2k pablog2k is offline
Miembro
 
Registrado: may 2017
Posts: 84
Poder: 7
pablog2k Va por buen camino
has probado con postman?
te dejo captura de pantalla de por donde podría funcionar (igual no es un parámetro normal, sino uno de tipo autorización)
https://subefotos.com/ver/?0658c9beb...e711ef1abo.jpg
Responder Con Cita
  #14  
Antiguo 02-01-2020
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.457
Poder: 20
newtron Va camino a la fama
Cita:
Empezado por pablog2k Ver Mensaje
has probado con postman?
te dejo captura de pantalla de por donde podría funcionar (igual no es un parámetro normal, sino uno de tipo autorización)
https://subefotos.com/ver/?0658c9beb...e711ef1abo.jpg

Si, me descargué Postman pero no me funciona. Por alguna extraña razón se me queda la pantalla en negro con el reloj de arena al iniciar y ahí se queda.

Edito: Cuando digo que sigo a la espera "de que me digan" no es por vosotros, es que he hecho una consulta a los administradores del servidor para que me digan cómo enviar los parámetros pero sigo a la espera.

Gracias y un saludo
__________________
Be water my friend.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
hacer llamada telefonica en delphi xe7 kurono Desarrollo en Delphi para Android 3 13-08-2017 21:18:07
hacer una llamada a un ejecutable externo ercrizeporta Varios 1 27-05-2007 08:16:12
Llamada a un evento !!! Ledian_Fdez OOP 5 13-07-2006 21:13:22
Hacer llamada telefónica a través de LAN ciscu Varios 3 28-04-2005 02:04:57
Llamada a Dll Aztaroth Varios 1 22-01-2004 19:07:43


La franja horaria es GMT +2. Ahora son las 11:37:00.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi