# Idea: Feature Rich REST UDF

## 8 posts in this topic

There are some impressive UDFs emerging or being re-written recently surrounding REST services. At the same time, the explosion of useful web services and use-cases to tie them together shows no signs of slowing. I suggest a project to tie together the existing UDFs into a more comprehensive UDF which abstracts the four major functions of working with REST services:

• Authentication (OAuth1/2, OpenID/Connect, Etc)
• The HTTP Calls (Flexibility with URL, HTTP Methods, Header, Body)
• Manipulating the Data (XML and JSON)
• Local Storage/Caching (A new file-based NoSQL Strategy combined with SQLite)

Some of these are pretty tall orders, however the overall notion seems so universally useful with the present technologies, I wanted to suggest it for community feedback to measure support.

Full disclosure, I don't have time or skill level to contribute to these UDF's in a meaningful way. I thought maybe I shouldn't even post this for that reason, but I went ahead anyway.

The UDFs that I find exciting and think would be good candidates for inclusion are listed below:

##### Share on other sites

Intgeresting, but first this each udf must be finished - I'm talking about XML

How to use IE.au3  UDF with  AutoIt v3.3.14.x  for other useful stuff click the following button:

Spoiler

Last update: 2016-12-23
Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind.

My contribution to others projects: * _sql.au3 UDF  *

"Homo sum; humani nil a me alienum puto" - Publius Terentius Afer
"Program are meant to be read by humans and only incidentally for computers and execute" - Donald Knuth, The Art of Computer Programming
, be   and       \\//_.

Anticipating Errors :  "Any program that accepts data from a user must include code to validate that data before sending it to the data store. You cannot rely on the data store, ...., or even your programming language to notify you of problems. You must check every byte entered by your users, making sure that data is the correct type for its field and that required fields are not empty."

##### Share on other sites

It came to me in a different way.
After deliberation you're right @guinness.

But it will be interesting to show some example on how to tie together, in a specific project, I mean UDF for a particular WebService (it must be open to public).

Then, interested parties may jointly develop something new, at the same time showing to other AutoIt Forum Members the progress, and also looking for help and ideas directly on this forum.

1 person likes this

How to use IE.au3  UDF with  AutoIt v3.3.14.x  for other useful stuff click the following button:

Spoiler

Last update: 2016-12-23
Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind.

My contribution to others projects: * _sql.au3 UDF  *

"Homo sum; humani nil a me alienum puto" - Publius Terentius Afer
"Program are meant to be read by humans and only incidentally for computers and execute" - Donald Knuth, The Art of Computer Programming
, be   and       \\//_.

Anticipating Errors :  "Any program that accepts data from a user must include code to validate that data before sending it to the data store. You cannot rely on the data store, ...., or even your programming language to notify you of problems. You must check every byte entered by your users, making sure that data is the correct type for its field and that required fields are not empty."

##### Share on other sites

Intgeresting, but first this each udf must be finished - I'm talking about XML

Indeed, that is a good point.

##### Share on other sites

I don't get it. Why have an all-in-one UDF?

You are right of course, an all-in-one UDF would be a bad idea.

Instead, as mLipok suggested: a handful of demo scripts that include the "Suite" and show the execution of popular use cases would be very helpful for the average scripter.

However, to enable that to happen, there are a few more API related UDFs that have not yet been written.  Specifically, one for OAuth/OAuth2/OpenIDConnect, a NoSQL UDF that handles both XML and JSON, a converter for XML <to/from> JSON,  and even a UDF that abstracts the calling of API's (Rest vs RPC vs Hybrid... JSON vs XML).  I Suppose SOAP should be on the menu, but I don't have any of those to deal with at the moment.

So really, I guess the idea boils down to just creating these extra "Web API related" UDFs.

##### Share on other sites

So really, I guess the idea boils down to just creating these extra "Web API related" UDFs.

First select one, which would be best for entire community.

And I think exactly the same as guinness said:

Great, be my guest. It would be a good learning curve for you.

+++ when you come in trouble with my XMLWrapper... then do not hold back and you can ask me.

How to use IE.au3  UDF with  AutoIt v3.3.14.x  for other useful stuff click the following button:

Spoiler

Last update: 2016-12-23
Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind.

My contribution to others projects: * _sql.au3 UDF  *

"Homo sum; humani nil a me alienum puto" - Publius Terentius Afer
"Program are meant to be read by humans and only incidentally for computers and execute" - Donald Knuth, The Art of Computer Programming
, be   and       \\//_.

Anticipating Errors :  "Any program that accepts data from a user must include code to validate that data before sending it to the data store. You cannot rely on the data store, ...., or even your programming language to notify you of problems. You must check every byte entered by your users, making sure that data is the correct type for its field and that required fields are not empty."

## Create an account

Register a new account

• ### Similar Content

• By ur
I have a github repository and when I run the below command it will retrieve a json file.
curl --user "user:password" https://api.github.com/repos/ukreddy-erwin/Build-war/commits > Desktop/uday.html The output json file will be of the below format.
So that would be the number of commits in the repository.
Any suggestion on how to parse this file of json format.
• By mojomatt
Hi All,
Can anyone help me figure out the syntax to use to get the jobid returned out of the below json string (in my code example)?  I want to use bracketed notation and I want the msgbox to display 2155813bb95e9829.
One example I've tried that doesn't work is...
$strJobIDFromJson = json_Get($objJson, "[jobid]")

I'm using the json.au3 include with these properties...
; File        : Json.au3 (2015.01.08)
; Purpose    : A Non-Strict JavaScript Object Notation (JSON) Parser UDF
; Author    : Ward
; Dependency: BinaryCall.au3
; Website    : http://www.json.org/index.html
;
; Source    : jsmn.c
; Author    : zserge
; Website    : http://zserge.com/jsmn.html
;
; Source    : json_string_encode.c, json_string_decode.c
; Author    : Ward

Here's my example code...
#Include <JSON.au3> $strReturnedData2 = '{"jobid":{"2155813bb95e9829":{"startTime":"2016-10-28 20:56:53 UTC","requestor":"Requestor","description":"Description","email":"","content":[{"Name":"ContentName","Parameters":""}],"computers":{"Computername":{"overallStatus":"Waiting for client to check-in...","details":[{"name":"DetailsName","env":"","actionID":"","status":"","exitCode":"","lastLine":"","startTime":"","endTime":"","contentURL":""}]}},"actionStatus":{"iem-dev":"Open"}}},"status_text":"","error_text":"","status_code":"200","status":"OK","rc":"0"}'$objJson = json_Decode($strReturnedData2)$strJobIDFromJson = json_Get($objJson, What Do I Put Here?) MsgBox(0,"JobID",$strJobIDFromJson)
Thanks

• By Zaroz
Alright, this is going to be a rather long explanation so bear with me.
What I am trying to to is build a GUI program that, in the end, will look like this:
The middle Frame is for displaying a desktop icon and the right frame is for displaying a selected image.
The XML file I am using looks like this:
<list> <item id="1"> <ico>Path\to\icon1<\ico> <img>Path\to\image1<\img> <exe>Path\to\program1<\exe> <label>UserDefinedLabel1<\label> <\item> <item id="2"> <ico>Path\to\icon2<\ico> <img>Path\to\image2<\img> <exe>Path\to\program2<\exe> <label>UserDefinedLabel2<\label> <\item> <\list> What I want this program to do is when I highlight an item in the listbox (which btw is displaying the <label> value associated with the item) I want the displayed icon and image to change to the ones associated with that entry.
Also I would like to include an additional dialog to open when the 'ADD' button is clicked that will add entries to the XML file that looks like this:

The main problem I am running into is that I do not know much about XML and how to parse it into dynamic variables that can change based off of selection.
Any help is appreciated.

10-29-16 EDIT: For all intents and purposes, I basically want to create something similar to PStart, but with a preview pane with a customizable image for each item in it.
• By jandings
Hello there,
I'm trying to query a REST API of a webservice, SHOPWARE to be precise. The API is very well documented (https://developers.shopware.com/developers-guide/rest-api/#using-the-rest-api-in-your-own-a) but only using PHP. I tried some stuff but could not make it work.
It should be very simple, because the following simply works in a Chrome-Browser:
#include-once #include "..\INCLUDE\winhttp.au3" #include "..\INCLUDE\OO_JSON.au3" ;Proxy Config Global $oJSON = _OO_JSON_Init() Global$obj = "" Global $sUserName = "USERNAME" Global$sPassword = "PASSPHRASE" Global $sDomain = "www.SHOPWAREDOMAIN.com/api/orders/300" Global$hOpen = _WinHttpOpen("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) JOC/0.1") ; without ie proxy settings $hConnect = _WinHttpConnect($hOpen, "https://" & $sDomain) ConsoleWrite ($hConnect & "#") $sReturned = _WinHttpSimpleSSLRequest($hConnect, "GET", $sUserName & ":" &$sPassword & "@" & $sDomain, Default ) ;$sReturned = _WinHttpSimpleSSLRequest($hConnect, "GET",$sDomain, Default, $sUserName & ":" &$sPassword) ;$sReturned = _WinHttpSimpleSSLRequest($hConnect, "GET", $sDomain, Default, ,$sUserName & ":" & $sPassword ) _WinHttpCloseHandle($hConnect) _WinHttpCloseHandle($hOpen) ; See what's returned ConsoleWrite ($sReturned & "#" & @error) Whatever version I use (I tried the commented ones and many others), I always get a reply from Shopware: