× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



You're right. I've been trying things and composing emails and I got my example wrong.

When the IWS configuration specified

Base resource URL: http://1.2.3.4:10010/web/services/RT0200S

Procedure name: GETCASESTATUS
HTTP request method: GET
URI path template for method: /{email}/{casenbr^[0-9]+$}
Input parameter mappings:
Parameter name Data type Input source Identifier Default Value
PEMAIL char *PATH_PARAM email *NONE
PCASENBR packed *PATH_PARAM casenbr ^[0-9]+$ *NONE

I was trying what you said:

http://1.2.3.4:10010/web/services/RT0200S/myemail@xxxxxxxxxxx/13245


but when the IWS configuration specified

Base resource URL: http://1.2.3.4:10010/web/services/RT0200S

Procedure name: GETCASESTATUS
HTTP request method: GET
URI path template for method: /email/{email}/casenbr/{casenbr^[0-9]+$}
Input parameter mappings:
Parameter name Data type Input source Identifier Default Value
PEMAIL char *PATH_PARAM email *NONE
PCASENBR packed *PATH_PARAM casenbr ^[0-9]+$ *NONE

I was trying what I had in that previous email:

http://1.2.3.4:10010/web/services/RT0200S/email/myemail@xxxxxxxxxxx/casenbr/13245

as suggested by Tim Fathers. The former appears to be positional while the latter shows the parameter name in the URL.


I'd be happy to get either one working to the point it calls the procedure in my service program, but no luck in either case -- both get HTTP 404 - not found.


Having said all that, I think I see the problem -- PEMAIL is char. I think if I make that varchar I'll get somewhere. I'll try that tomorrow and let everyone know one way or the other.

On 1/14/2019 4:55 PM, Jon Paris wrote:
It should just be http://1.2.3.4:10010/web/services/RT0200S/myemail@xxxxxxxxxxx/13245 <http://1.2.3.4:10010/web/services/RT0200S/myemail@xxxxxxxxxxx/13245> I would have thought.

Looks to me like you're trying to use a query string type format including the name of the parms.


Jon Paris

www.partner400.com
www.SystemiDeveloper.com

On Jan 14, 2019, at 7:38 PM, Peter Dow <petercdow@xxxxxxxxx> wrote:

Hi Brad,

Speaking for myself, the problem is not deciding which format to use, but to figure out what the IWS configuration translates to in practice. It seems to do a lot for you, but so far I haven't been able to go from what I specify in IWS:

Base resource URL: http://1.2.3.4:10010/web/services/RT0200S

Procedure name: GETCASESTATUS
HTTP request method: GET
URI path template for method: /{email}/{casenbr^[0-9]+$}
HTTP response code output parameter: *NONE
HTTP header array output parameter: *NONE
Allowed input media types: *ALL
Returned output media types: *XML
Input parameter mappings:
Parameter name Data type Input source Identifier Default Value
PEMAIL char *PATH_PARAM email *NONE
PCASENBR packed *PATH_PARAM casenbr ^[0-9]+$ *NONE

to what URL I have to use to invoke that procedure/method. My understanding was that with the above configuration, I should use

http://1.2.3.4:10010/web/services/RT0200S/email/myemail@xxxxxxxxxxx/casenbr/13245

but I consistently get HTTP 404 - not found.

If I can get past that hurdle, then deciding what flavor to use will be the time to look at examples.

--
*Peter Dow* /
Dow Software Services, Inc.
909 793-9050
petercdow@xxxxxxxxx <mailto:petercdow@xxxxxxxxx>
pdow@xxxxxxxxxxxxxx <mailto:pdow@xxxxxxxxxxxxxx> /

On 1/14/2019 3:52 PM, B Stone wrote:
Booth,

It would do yourself a favor and others new to RESTful requests and
services to search the net for that sort of answer. There are a few here
familiar with it, but there is so much free information out there that you
should familiarize yourself with first.

Another nice way to look at a LOT of examples is look at Google's RESTful
APIs for all their services. Calendar is one:

https://developers.google.com/calendar/v3/reference/

You'll see a lot of options for URI paths, query string options, payload
options, etc. Especially when you really dig down into some of the docs.


Bradley V. Stone
www.bvstools.com
MAILTOOL Benefit #8 <https://www.bvstools.com/mailtool.html>: Email Logging
- Each email that is sent out is logged with a delivery status. MAILTOOL
also tracks each of the recipients for each email as well as the
attachment(s) sent along with each email.

On Mon, Jan 14, 2019 at 5:39 PM Booth Martin <booth@xxxxxxxxxxxx> wrote:

Agreed on all of that but in reading Tim Fathers' response, it looks to
me like we should be using queryparm instead of a pathparm?

Like this: http://1.2.3.4:10010/web/services/ftoc?90 - or something
- ???

This has been a long trip for me, and fun every bit of the way. That the
discussion is about style & form tells me thatI finally got there. Now
that I see what IWS is doing I am astonished that there isn't a lot more
discussion about this awesome product.



On 1/14/2019 5:16 PM, Peter Dow wrote:
Hi Booth,

If you already created the temperature conversion example using IWS
and have it running, then you can use the "Manage Deployed Services"
link, select the correct resource from the list and click the
Properties button.

On the General tab that's displayed you'll see

Base resource URL: http://1.2.3.4:10010/web/services/ftoc

Copy and paste that to a browser's address bar and add the temperature
convert, e.g.

http://1.2.3.4:10010/web/services/ftoc/90

The response I get (shown in the browser) is

<CONVERTTEMPResult>
<TEMPOUT>32.22</TEMPOUT>
</CONVERTTEMPResult>

Btw, thanks for all your posts about this subject. Reading that thread
was a great help in my project.

On 1/14/2019 2:31 PM, Booth Martin wrote:
Walk me through this. The temperature conversion example included
with IWS... The address is http://an.iSeries.com/coop/ I want to say
F2C and 90, meaning I want the api to convert 90 degrees Fahrenheit
to Celsius. What should that look like?


On 1/14/2019 4:16 PM, Tim Fathers wrote:
While I agree the definition of REST can be pretty flexible and
there are no hard and fast rules, I think it is a fairly well
established rule of thumb that the URL should generally identify the
resource, not the query parameters. The body (which I think you mean
by "standard input") is where the payload should go, and should not
be used on on a GET request in any case.

In some APIs the resource is not a "thing" but a function, in which
case it is considered ok to pass query parameters to it in the URL
for a GET or in the body for a POST. The example of this from my
favourite REST book "The RESTful Webservices Cookbook" is a distance
calculator. So /calc_distance?from=wiesbaden&to=frankfurt is ok
because "distance" is not a thing but a function.

Tim.
--
This is the Web Enabling the IBM i (AS/400 and iSeries) (WEB400) mailing
list
To post a message email: WEB400@xxxxxxxxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/web400
or email: WEB400-request@xxxxxxxxxxxxxxxxxx
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: WEB400@xxxxxxxxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/web400
or email: WEB400-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives
at https://archive.midrange.com/web400.



As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:
Replies:

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

This mailing list archive is Copyright 1997-2024 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.