Orientación detallada sobre el uso de JSL para obtener datos de la APITodo,
Me gustaría recibir orientación de la comunidad sobre cómo conectarme y obtener datos de una API en JMP usando JSL. He revisado un par de publicaciones en la comunidad sobre este tema:
Además, me he comunicado con @Craige_Hales para orientación sobre el mismo tema. Mi pregunta a Craige fue:
Seré sincero acerca de mi ignorancia y conocimiento limitado sobre el tema para no hacerle perder su valioso tiempo. Sé bastante poco sobre las API y no he trabajado mucho con las API anteriormente.
Una breve sinopsis de lo que entiendo sobre el tema dentro de JMP es la siguiente:
1. JMP puede transmitir información desde API, con la restricción de que la API debe ser http y no https; en mi caso es https.
2. JMP puede conectarse a R, si no es posible transmitir datos desde la API a JMP, espero transmitir a R y pasar los datos a JMP. Sin embargo, no estoy seguro de cuánto retraso introduciría en mi solicitud.
3. Socket es un objeto que permite la transmisión de información desde una conexión, ya sea a una API u otra computadora en la red. Los sockets permiten transmitir y enviar información.
¿Es esto correcto? En caso afirmativo, intentaré crear un script de prueba que transmita información desde mi API. Si no, ¿podría corregirme y guiarme hacia recursos que me ayudarían con este proceso?
Estoy tratando con una API REST que puede exponerse en https. El mecanismo de autenticación se basa en las pautas de OAuth2.
En el caso de que sólo pueda lograr esto fuera de JMP, preferiría trabajar con R/Python.
Re: Orientación detallada sobre el uso de JSL para obtener datos de APIComo JMP 14 está disponible desde hace casi 9 meses, creo que agrego alguna referencia donde esto se muestra de alguna manera:
Introducción-a-REST-en-JMP/ta-p/64104
y ejemplos-de-http-requests.shtml
HttpRequest es genial 
mejor martin
Re: Orientación detallada sobre el uso de JSL para obtener datos de APIMi opción es el paquete httr en R.Tiene capacidades de análisis y obtención/solicitud muy maduras, incluido json.La documentación es buena y hay muchos ejemplos disponibles.Una vez instalada, esto es todo lo que se necesita para obtener datos en JMP desde la primera API que pude encontrar y que no necesitaba información de inicio de sesión:
Names default to here( 1 );
R Init( );
R Submit("
library(httr)
httpResponse <- GET(\!"https://swapi.co/api/people/1/?format=json\!")
parsedContent = as.data.frame(content(httpResponse, \!"parsed\!"))
");
dtHidden = R Get( parsedContent );
R Term();
dt = dtHidden << Subset( Link to Original Data Table(0) );

Re: Orientación detallada sobre el uso de JSL para obtener datos de APILa mejor orientación que puedo ofrecer es esperar unos pocos meses hasta que se lance JMP 14. Creo que estarás feliz de haberlo hecho, ya que será mucho más fácil entonces.
Re: Orientación detallada sobre el uso de JSL para obtener datos de APILo siento, no he hecho nada como esto.¡Buena suerte!
Re: Orientación detallada sobre el uso de JSL para obtener datos de API@Jeff_Perkinson , @Wendy_Murphrey , @EM , @pmroz
Alguna idea ?
Re: Orientación detallada sobre el uso de JSL para obtener datos de API@Craige_Hales ,
Amablemente proporcionó la siguiente orientación:
API es una especificación sobre cómo utilizar un servicio. No existe un gran estándar, ni siquiera entre las API que afirman ser descansar -basado. Lo más probable es que leas mucho.
Creo que mencionaste antes que tenías que autenticar al servicio que desea utilizar. La autenticación de Twitter es un proceso bastante complicado usando OAuth2, del cual no estoy calificado para hablar... Lo encontré y lo hice funcionar y representa gran parte del JSL en el blog de 7 cosas.
O es posible que tenga una autenticación mucho más sencilla mediante una contraseña.
cuando te conectas a un sitio web desde un navegador, un socket transmite el html desde el sitio al navegador. Por lo general, el html tiene una longitud finita, pero si hay un programa en el servidor que genera el html, es muy posible que se transmita para siempre.
Los sockets de JMP pueden hacer eso con http. Curl puede hacer eso con https (o http). JMP 14 tendrá soporte para rizos incorporado.
Es probable que un servicio basado en descanso le proporcione datos json. (No puedo mantenerme al día con lo que incluye cada versión de JMP; creo que 13 tiene algo de compatibilidad con json y 14 puede tener más. También hay algo de jsl con el que Xan y yo jugamos hace un tiempo). , no particularmente amigable para los humanos, pero tampoco tan malo.
Parte de la magia de la transmisión de datos es darse cuenta de que curl, o un socket, le proporcionará la mayor parte de los datos, hasta ahora. y tal vez en pequeños trozos. por lo que es posible que tengas que ensamblarlo en partes completas y descubrir dónde están los límites de las partes. y conserve los últimos bytes del siguiente fragmento y espere a que el socket o curl entregue el resto. Si observa el ejemplo de conexión, tendrá una idea de ello... un bucle que sondea el socket y genera un resultado cada vez más largo a medida que llegan los datos. Aunque ese ejemplo sabe que los datos deben ser finitos y espera hasta que estén todos disponibles antes de continuar. El ejemplo de Twitter (en algún lugar, ha pasado mucho tiempo) usa RunProgram para obtener una transmisión de curl, para siempre. La función de lectura del programa de ejecución también concatena datos, pero ocasionalmente procesa los datos cuando ve que tienen un fragmento completo. Con el socket hay un bucle explícito. En la lógica del programa de ejecución de Twitter, el bucle está implícito... la devolución de llamada de la función de ejecución es impulsada por el programa curl que recibe más datos de Twitter.