If it's really no more than about 10 seconds then either way is probably ok, but having the web-service not return until the job has actually ended is probably the easiest. For longer running back-end tasks then it's more normal in the web world to return an HTTP response of 202 (Accepted) and get the client to poll periodically to check the status. Along with a 202 status, the API can also return information about how the client should request the status and even an estimated completion time so that you can tell the client "I expect this process to take about 10 seconds", so that the client can more intelligently poll.

I'm not familiar with what method you're using to create your server-side code, but it looks like you're using "GET" with an "action" query parameter like this; GET /myserver/myjob?action=start, which is quite an old fashioned way of writing a web-service and not really recommended these days. What you're doing is fine for a bit of hacking and learning, but you should look at using a more RESTful API if you want to do it "properly". I only mention this because when I started out I headed down many blind alleys, learning stuff that I subsequently found out was out of date, deprecated or just plain wrong.

One final thing, I found the book "RESTFul Webservices Cookbook" by Sabbu Allamarju really useful at answering the sort of practical question you asked. Obviously it's more geared towards writing and using RESTful APIs, and if you're just getting started it might be a little advanced, but it does help answer many of the questions that arise when you're coming from the stateful green-screen world to the stateless web-service world.


From: WEB400 <web400-bounces@xxxxxxxxxxxx> on behalf of Robert Rogerson <rogersonra@xxxxxxxxx>
Sent: 02 August 2018 22:08
To: web400@xxxxxxxxxxxx
Subject: [WEB400] Web service advice...

Hi all, first let me state that I'm just learning about web services
using Scott Klement's pdf's.

What I'm trying to accomplish is this. I have a NEP on the V7R1 box
which I'm trying to control from the web.

As a first step I have the html and javascript working to call a web
service to start and stop the job.

What I want to do now is display the status of the job on the page. So
(assuming the job is stopped) when the page is first displayed I would
call my web service and pass action=status which would return stopped
and I would display Inactive on the page.

If I click the start button the web service is called with action=start
and the job is started and the page is updated to Active.

Where I'm looking for advice is when I click the stop button. It may
take 10 seconds for the job to actually end. So between the time that I
call the web service to end the job and when the job is actually ended I
want to display Ending... on the page.

So I'm thinking of two approaches.

Call the web service with action=status in a loop until the status is
ended. Only the update the page to Inactive.

Or when I call the web service to end the job I update the page with
Ending... and do not return a response from the RPG program until the
job is actually ended.

Does anyone have any advise on how to approach this issue.



This is the Web Enabling the IBM i (AS/400 and iSeries) (WEB400) mailing list
To post a message email: WEB400@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.midrange.com%2Fmailman%2Flistinfo%2Fweb400&amp;data=02%7C01%7C%7C52136dd96ff942f8e44708d5f8b3d1f8%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636688373555483961&amp;sdata=8V6m2FQKKozRc%2BGRGObU8SuEJh56qBC6Rg14ztczkBg%3D&amp;reserved=0
or email: WEB400-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Farchive.midrange.com%2Fweb400&amp;data=02%7C01%7C%7C52136dd96ff942f8e44708d5f8b3d1f8%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636688373555483961&amp;sdata=l8hRUoqMPLtj0ibpjvCw%2FRc%2BB9CshM69AZOFGJl2unI%3D&amp;reserved=0.

As an Amazon Associate we earn from qualifying purchases.

This thread ...


Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2022 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.