Here's how web services could be supported by REBOL :

* code example :

service: open soap://api-ab.google.com/search/beta2/GoogleSearchService
res: insert service [ doGoogleSearch [
     key: #00000000000000000000000000000000
     q: "shrdlu winograd maclisp teletype"
     start: 0
     maxResults: 10
     filter: true
     restrict: none
     safeSearch: false
     lr: none
     ie: 'latin1
     oe: 'latin1
]]
close service

* Of course a short 'read call should also be possible :

res: read soap://api-ab.google.com/search/beta2/GoogleSearchService [
    doGoogleSearch [
        key: #00000000000000000000000000000000
        q: "shrdlu winograd maclisp teletype"
        start: 0
        maxResults: 10
        filter: true
        restrict: none
        safeSearch: false
        lr: none
        ie: 'latin1
        oe: 'latin1
    ]
]

I like this one a lot! :-)

* all XML stuff should be kept hidden in the 'soap scheme.

* on opening the 'soap port, port/locals will be loaded with all available
methods found in the WSDL file. The functions "spec" could be stored like
this :

>> probe service/locals
[
    doGoogleSearch [
       key        string!
       q          string!
       start      integer!
       maxResults integer!
       filter     logic!
       restrict   string!
       safeSearch logic!
       lr         string!
       ie         string!
       oe         string!
    ]
    doGetCachedPage [...]
    doGetSpellingSuggestion [...]
    
]

or if you prefer :

[
    Do-Google-Search [...]
    Do-Get-Cached-Page [...]
    Do-Get-Spelling-Suggestion [...]
]

Maybe we could also use 'help to pretty print these infos.
(>> help service)

* The 'soap scheme should also take care of arguments conversion.
For example :

key: #000...   => string! => "000..."
restrict: none => string! => ""

* if you want a wrapping func in the global context, just do :

Do-Google-Search: func [data [block!]][
    read soap://api-ab.google.com/search/beta2/GoogleSearchService reduce 
['doGoogleSearch data]
]

My 0,02eu...

-DocKimbel.


Carl Sassenrath wrote:
> 
> I think it's good to invent some smart way to make Web Services easier via REBOL. 
>So, that's the best way to get 
> there from here? For example:
> 
> REBOL Google search:
> 
> Do-Google-Search [
>      key: #00000000000000000000000000000000
>      q: "shrdlu winograd maclisp teletype"
>      start: 0
>      maxResults: 10
>      filter: true
>      restrict: none
>      safeSearch: false
>      lr: none
>      ie: 'latin1
>      oe: 'latin1
> ]
> 
> XML SOAP Google search:
[...]
> Your thoughts?
> 
> -Carl
-- 
To unsubscribe from this list, please send an email to
[EMAIL PROTECTED] with "unsubscribe" in the 
subject, without the quotes.

Reply via email to