Conseils détaillés sur l'utilisation de JSL pour obtenir des données de l'APITous,
J'aimerais obtenir les conseils de la communauté sur la façon de se connecter et d'obtenir des données d'une API vers JMP à l'aide de JSL . J'ai parcouru quelques posts dans la communauté sur ce sujet :
De plus, j'ai contacté @Craige_Hales pour obtenir des conseils sur le même sujet. Ma question à Craige était la suivante :
Je serai franc sur mon ignorance et mes connaissances limitées sur le sujet afin de ne pas vous faire perdre un temps précieux. Je connais assez peu les API et je n’ai pas beaucoup travaillé avec elles auparavant.
Un bref résumé de ce que je comprends du sujet au sein de JMP est le suivant :
1. JMP peut diffuser des informations à partir des API, avec la contrainte que l'API doit être un http et non un https - Dans mon cas, c'est https
2. JMP peut se connecter à R, si la diffusion de données de l'API vers JMP n'est pas possible, j'espère diffuser dans R et transmettre les données dans JMP. Cependant , je ne suis pas sûr du retard que cela entraînerait dans ma candidature .
3. Socket est un objet qui permet le streaming d'informations à partir d'une connexion, que ce soit vers une API ou un autre ordinateur du réseau. Les sockets permettent de diffuser et de soumettre des informations
Est-ce correct? Si oui, j'essaierai de créer un script de test qui diffuse les informations de mon API. Si non, pouvez-vous me corriger et me guider vers des ressources qui pourraient m'aider dans ce processus.
J'ai affaire à une API REST qui peut être exposée sur https . Le mécanisme d'authentification est basé sur les directives OAuth2.
Dans le cas où je ne peux y parvenir qu'en dehors de JMP, je préférerais travailler avec R/Python.
Re : Conseils détaillés sur l'utilisation de JSL pour obtenir des données de l'APIComme JMP 14 est disponible depuis près de 9 mois, je pense ajouter une référence où cela est affiché d'une manière ou d'une autre :
Premiers pas avec REST dans JMP/ta-p/64104
et des exemples de http-requests.shtml
HttpRequest est cool 
Meilleur Martin
Re : Conseils détaillés sur l'utilisation de JSL pour obtenir des données de l'APIMon choix est le package httr dans R.Il possède des capacités d'obtention/requête et d'analyse très matures, y compris json.La documentation est bonne et il existe de nombreux exemples.Une fois installé, c'est tout ce qu'il faut pour importer les données dans JMP à partir de la première API que j'ai pu trouver et qui n'avait pas besoin d'informations de connexion :
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 : Conseils détaillés sur l'utilisation de JSL pour obtenir des données de l'APILe meilleur conseil que je puisse offrir est d’attendre quelques mois jusqu’à la sortie de JMP 14. Je pense que vous serez heureux de l'avoir fait car ce sera alors beaucoup plus facile.
Re : Conseils détaillés sur l'utilisation de JSL pour obtenir des données de l'APIDésolé, je n'ai rien fait de tel.Bonne chance!
Re : Conseils détaillés sur l'utilisation de JSL pour obtenir des données de l'API@Jeff_Perkinson , @Wendy_Murphrey , @MS , @pmroz
Des pensées ?
Re : Conseils détaillés sur l'utilisation de JSL pour obtenir des données de l'API@Craige_Hales ,
Veuillez fournir les conseils suivants :
L'API est une spécification sur la façon d'utiliser un service. Il n'existe pas vraiment de standard, même parmi les API qui prétendent l'être. repos -basé. Vous lirez probablement beaucoup.
Je pense que vous avez mentionné plus tôt que vous deviez authentifier au service que vous souhaitez utiliser. L'authentification Twitter est un processus assez compliqué utilisant OAuth2, dont je ne suis pas qualifié pour parler... Je suis tombé dessus et je l'ai fait fonctionner et cela représente une grande partie du JSL dans le blog 7-things.
Ou vous pourriez avoir une authentification beaucoup plus simple à l'aide d'un mot de passe.
lorsque vous vous connectez à un site Web à partir d’un navigateur, un socket diffuse le code HTML du site dans le navigateur. Habituellement, le code HTML a une longueur finie, mais s'il existe un programme sur le serveur qui génère le code HTML, il est tout à fait possible qu'il soit diffusé pour toujours.
Les sockets de JMP peuvent le faire avec http. Curl peut le faire avec https (ou http). JMP 14 aura un support curl intégré.
Un service basé sur le repos est susceptible de vous fournir des données json. (Je n'arrive pas à suivre ce qui se passe dans chaque version de JMP ; je pense que 13 prend en charge JSON et 14 peut en avoir plus. Il y a aussi du jsl Xan et j'ai joué avec il y a quelque temps.) Json est des données clé-valeur imbriquées , pas particulièrement convivial pour les humains, mais pas trop mal non plus.
Une partie de la magie du streaming de données consiste à réaliser que curl, ou un socket, va vous fournir la plupart des données, jusqu'à présent. et peut-être en petits morceaux. vous devrez donc peut-être l'assembler en morceaux complets et déterminer où se trouvent les limites des morceaux. et conservez les derniers octets du morceau suivant et attendez que le reste soit livré par le socket, ou curl. Si vous regardez l'exemple de connexion, vous en aurez une idée... une boucle qui interroge le socket et génère un résultat de plus en plus long à mesure que les données arrivent. Bien que cet exemple sache que les données doivent être finies et attend qu'elles soient toutes disponibles avant de continuer. L'exemple Twitter (quelque part, cela fait longtemps) utilise RunProgram pour obtenir un flux de curl, pour toujours. la fonction de lecture runprogram concatène également les données ensemble, mais traite occasionnellement les données lorsqu'elle constate qu'elles contiennent un morceau complet. Avec le socket, il existe une boucle explicite. Dans la logique du programme d'exécution de Twitter, la boucle est implicite... le rappel de la fonction d'exécution est piloté par le programme curl recevant plus de données de Twitter.