Re: Creating a REST API with RPGLE
Jay Vaughn <[email protected]> Sat, 8 Oct 2022 16:06:14 -0400
| Newsgroups | gmane.comp.systems.as400.web |
|---|---|
| Message-ID | <[email protected]> |
Debatable Apache Rpg Sql Jay > On Oct 8, 2022, at 4:00 PM, Brad Stone <[email protected]> wrote: > > Because if the data resides on the IBM i... RPG and the Apache server with > YAJL are really the easiest way to do it. :) > >> On Sat, Oct 8, 2022 at 1:33 PM Richard Schoen <[email protected]> >> wrote: >> >> Out of curiosity is there a reason you can't still use C# ? >> >> Web apps and web apis done in C# and hosted on Windows or Linux are quite >> usable as well and can interact with your RPG via ODBC database calls and >> the IBMi Access ODBC driver. >> >> You also have things like Java, Python, Node and PHP available. >> >> Another interesting option if you want to create an RPG web service is >> ILEAstic. >> >> You have options. >> >> Regards, >> Richard Schoen >> Web: http://www.richardschoen.net >> Email: [email protected] >> >> ---------------------------------------------------------------------- >> >> message: 1 >> date: Fri, 7 Oct 2022 20:54:11 -0400 >> from: [email protected] >> subject: [WEB400] Creating a REST API with RPGLE >> >> First, let me say I am trying to do something here that I have zilch >> experience with from the IBM i perspective. I have done this type of stuff >> using C#.Net on Windows but nothing on the IBM i. Yesterday was my first >> voyage into IBM Web Administration for i. >> >> That said, I am trying to create a REST API written in RPGLE that will >> return JSON data. I have looked at a lot of examples but just can't find >> what I am after. >> >> This needs to be modeled after some existing C#.Net REST APIs so the >> following requirements are not negotiable. >> >> The request needs to be a POST type. >> The body of the POST request needs to have two "fields". >> 1) Input - An SQL statement that will be used to retrieve the data. >> 2) Output - The results of the SQL. These results can be anything so >> the fields can't be predefined in the RPGLE program's parameters like they >> are in all of the examples that I find. There can also be multiple records >> so it would end up having an array in the results. I think I need a single >> "results" field that is pretty big and I will need to manually build the >> JSON for it. >> >> I tried creating a new HTTP server and deploying a service to it. I have >> been successful using Scott's customer lookup as a model and I have been >> able to do a few different things to experiment. However, I can't figure >> out how to handle the POST body for input or the array results in the >> output. >> >> One attempt was to create the following: >> dcl-pi *n; >> sql char(5000); >> resultSet char(50000); >> end-pi; >> The problem was that I got back a value in the resultSet that was really >> junked up JSON because it escaped all of the " as \". I considered trying >> to make the resultSet value return as plain text instead of JSON (I'm >> assuming I can do that somehow) but I decided before I went too far down >> the wrong rabbit hole, I would ask for help. >> >> Can someone help point me in a good direction? I don't mind doing a lot >> of web digging, I just don't really know what I need to search for to do >> the digging. >> >> Thanks. >> >> >> -- >> This is the Web Enabling the IBM i (AS/400 and iSeries) (WEB400) mailing >> list >> To post a message email: [email protected] >> To subscribe, unsubscribe, or change list options, >> visit: https://lists.midrange.com/mailman/listinfo/web400 >> or email: [email protected] >> Before posting, please take a moment to review the archives >> at https://archive.midrange.com/web400. >> >> > -- > This is the Web Enabling the IBM i (AS/400 and iSeries) (WEB400) mailing list > To post a message email: [email protected] > To subscribe, unsubscribe, or change list options, > visit: https://lists.midrange.com/mailman/listinfo/web400 > or email: [email protected] > Before posting, please take a moment to review the archives > at https://archive.midrange.com/web400. > -- This is the Web Enabling the IBM i (AS/400 and iSeries) (WEB400) mailing list To post a message email: [email protected] To subscribe, unsubscribe, or change list options, visit: https://lists.midrange.com/mailman/listinfo/web400 or email: [email protected] Before posting, please take a moment to review the archives at https://archive.midrange.com/web400.