application/x-www-form-urlencoded and
your content must be encoded using this format. If you are invoking
an XML endpoint, then your Content-type must be set to application/xml and
your content must be XML. The HTTP Accept header tells SAS BI Web
Services what type of content your client can accept as output. The
Accept header must be set to application/json for
JSON endpoints and can be set to application/xml for
XML endpoints (this header is not required for XML endpoints). When
retrieving binary output resources from an XML endpoint, you can follow
normal HTTP procedures for other HTTP headers such as Content-length,
Host, and HTTP method.
|
|
Stored process (no input
required)
/programs/timeAndDate |
Stored process (input
required)
/programs/addfloats |
Generated web service
addfloatsWS contains stored process
/programs/addfloats |
|---|---|---|---|
|
SOAP Usage
|
|||
|
SOAP endpoint
|
http://host:port/SASBIWS/services/programs/timeAndDate
|
http://host:port/SASBIWS/services/programs/addfloats
|
http://host:port/SASBIWS/services/addfloatsWS
|
|
WSDL location
|
http://host:port/SASBIWS/services/programs/timeAndDate?wsdl
|
http://host:port/SASBIWS/services/programs/addfloats?wsdl or http://host:port/SASBIWS/services/programs/addfloats.wsdl
|
http://host:port/SASBIWS/services/addfloatsWS?wsdl or http://host:port/SASBIWS/services/addfloatsWS.wsdl
|
|
Sample SOAP request
|
POST http://host:port/SASBIWS/services/ programs/timeAndDate HTTP/1.1 Content-Type: text/xml; charset=UTF-8 SOAPAction: “http://www.sas.com/xml/namespace/ biwebservices/timeAndDate” Host: host:port <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/ soap/envelope/" xmlns:biw="http://www.sas.com/xml/ namespace/biwebservices"> <soapenv:Header/> <soapenv:Body> <biw:timeAndDate> <biw:parameters /> </biw:timeAndDate> </soapenv:Body> </soapenv:Envelope> |
POST http://host:port/SASBIWS/services/ programs/addfloats HTTP/1.1 Content-Type: text/xml; charset=UTF-8 SOAPAction: “http://www.sas.com/xml/namespace/ biwebservices/addfloats” Host: host:port <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/ soap/envelope/" xmlns:biw="http://www.sas.com/xml/ namespace/biwebservices"> <soapenv:Header/> <soapenv:Body> <biw:addfloats> <biw:parameters> <biw:num1>2.3</biw:num1> <biw:num2>4.2</biw:num2> </biw:parameters> </biw:addfloats> </soapenv:Body> </soapenv:Envelope> |
POST http://host:port/SASBIWS/services/ addfloatsWS HTTP/1.1 Content-Type: text/xml; charset=UTF-8 SOAPAction: “http://tempuri.org/addfloatsWS/ addfloats” Host: host:port <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/ soap/envelope/" xmlns:add="http://tempuri.org/ addfloatsWS"> <soapenv:Header/> <soapenv:Body> <add:addfloats> <add:parameters> <add:num1>2.3</add:num1> <add:num2>4.2</add:num2> </add:parameters> </add:addfloats> </soapenv:Body> </soapenv:Envelope> |
|
Sample SOAP response
|
HTTP/1.1 200 OK
SOAPAction: ""
Accept: text/xml
Content-Type: text/xml;charset=UTF-8
Transfer-Encoding: chunked
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/
soap/envelope/">
<soapenv:Body>
<n:timeAndDateResponse
xmlns:n="http://www.sas.com/xml/namespace/
biwebservices">
<n:timeAndDateResult>
<n:Parameters>
<n:time>13:24:20</n:time>
<n:date>06Mar2011</n:date>
</n:Parameters>
</n:timeAndDateResult>
</n:timeAndDateResponse>
</soapenv:Body>
</soapenv:Envelope>
|
HTTP/1.1 200 OK
SOAPAction: ""
Accept: text/xml
Content-Type: text/xml;charset=UTF-8
Transfer-Encoding: chunked
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/
soap/envelope/">
<soapenv:Body>
<n:addfloatsResponse
xmlns:n="http://www.sas.com/xml/namespace/
biwebservices">
<n:addfloatsResult>
<n:Parameters>
<n:Sum>6.5</n:Sum>
</n:Parameters>
</n:addfloatsResult>
</n:addfloatsResponse>
</soapenv:Body>
</soapenv:Envelope>
|
HTTP/1.1 200 OK
SOAPAction: ""
Accept: text/xml
Content-Type: text/xml;charset=UTF-8
Transfer-Encoding: chunked
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/
soap/envelope/">
<soapenv:Body>
<n:addfloatsResponse
xmlns:n="http://tempuri.org/addfloatsWS">
<n:addfloatsResult>
<n:Parameters>
<n:Sum>6.5</n:Sum>
</n:Parameters>
</n:addfloatsResult>
</n:addfloatsResponse>
</soapenv:Body>
</soapenv:Envelope>
|
|
RESTful XML Usage
|
|||
|
RESTful XML endpoint
|
http://host:port/SASBIWS/rest/storedProcesses/programs/timeAndDate
|
http://host:port/SASBIWS/rest/storedProcesses/programs/addfloats
|
http://host:port/SASBIWS/rest/addfloatsWS/addfloats
|
|
Sample RESTful XML request
|
GET http://host:port/SASBIWS/rest/ storedProcesses/programs/timeAndDate HTTP/1.1 Accept: application/xml Host: host:port |
POST http://host:port/SASBIWS/rest/ storedProcesses/programs/addfloats HTTP/1.1 Accept: application/xml Content-Type: application/xml User-Agent: Jakarta Commons-HttpClient/3.1 Host: host:port <addfloats> <parameters> <num1>2.3</num1> <num2>4.2</num2> </parameters> </addfloats> |
POST http://host:port/SASBIWS/rest/ addfloatsWS/addfloats HTTP/1.1 Accept: application/xml Content-Type: application/xml Host: host:port <addfloats xmlns="http://tempuri.org/ addfloatsWS"> <parameters> <num1>2.3</num1> <num2>4.2</num2> </parameters> </addfloats> |
|
Sample RESTful XML response
|
HTTP/1.1 200 OK
Content-Type: text/xml
Transfer-Encoding: chunked
<timeAndDateResponse>
<timeAndDateResult>
<Parameters>
<time>13:24:20</time>
<date>06Mar2011</date>
</Parameters>
</timeAndDateResult>
</timeAndDateResponse>
|
HTTP/1.1 200 OK
Content-Type: text/xml
Transfer-Encoding: chunked
<addfloatsResponse>
<addfloatsResult>
<Parameters>
<Sum>6.5</Sum>
</Parameters>
</addfloatsResult>
</addfloatsResponse>
|
HTTP/1.1 200 OK
Content-Type: text/xml
Transfer-Encoding: chunked
<n:addfloatsResponse
xmlns:n="http://tempuri.org/addfloatsWS">
<n:addfloatsResult>
<n:Parameters>
<n:Sum>6.5</n:Sum>
</n:Parameters>
</n:addfloatsResult>
</n:addfloatsResponse>
|
|
RESTful JSON Usage
|
|||
|
RESTful JSON endpoint
|
http://host:port/SASBIWS/json/storedProcesses/programs/timeAndDate
|
http://host:port/SASBIWS/json/storedProcesses/programs/addfloats
|
http://host:port/SASBIWS/json/addfloatsWS/addfloats
|
|
Sample RESTful JSON
request
|
GET http://host:port/SASBIWS/json/ storedProcesses/programs/timeAndDate HTTP/1.1 Accept: application/json Host: host:port |
POST http://host:port/SASBIWS/json/ storedProcesses/programs/addfloats HTTP/1.1 Accept: application/json Content-Type: application/x-www-form-urlencoded Host: host:port num1=2.3&num2=4.2 |
POST http://host:port/SASBIWS/json/ addfloatsWS/addfloats HTTP/1.1 Accept: application/json Content-Type: application/x-www-form-urlencoded Host: host:port num1=2.3&num2=4.2 |
|
Sample RESTful JSON
response
|
HTTP/1.1 200 OK
Content-Type: application/json
Transfer-Encoding: chunked
{"outputParameters":{"date":"06Mar2011",
"time":"13:24:20"}}
|
HTTP/1.1 200 OK
Content-Type: application/json
Transfer-Encoding: chunked
{"outputParameters":{"Sum":"6.5"}}
|
HTTP/1.1 200 OK
Content-Type: application/json
Transfer-Encoding: chunked
{"outputParameters":{"Sum":"6.5"}}
|
|
|
Stored process (no input
required)
/programs/outputTest |
Stored process (input
required)
/programs/ioTest |
Generated web service
outputTestWS contains stored process
/programs/outputTest |
|---|---|---|---|
|
Original RESTful URL
|
http://host:port/SASBIWS/rest/storedProcesses/programs/outputTest
|
http://host:port/SASBIWS/rest/storedProcesses/programs/ioTest
|
http://host:port/SASBIWS/rest/storedProcesses/outputTestWS/outputTest
|
|
Accessing an output
parameter named
result that returns a value success |
|||
|
Endpoint
|
http://host:port/SASBIWS/rest/storedProcesses/programs/outputTest/outputParameters/result
|
http://host:port/SASBIWS/rest/storedProcesses/programs/ioTest/outputParameters/result
|
http://host:port/SASBIWS/rest/outputTestWS/outputTest/outputParameters/result
|
|
Sample request
|
GET http://host:port/SASBIWS/rest/ storedProcesses/programs/outputTest/ outputParameters/result HTTP/1.1 Host: host:port |
POST http://host:port/SASBIWS/rest/ storedProcesses/programs/outputTest/ outputParameters/result HTTP/1.1 Host: host:port <outputTest> <sampleInput> Foo </sampleInput> </outputTest> |
GET http://host:port/SASBIWS/rest/ outputTestWS/outputTest/outputParameters/ result HTTP/1.1 Host: host:port |
|
Sample response
|
HTTP/1.1 200 OK Content-Type: text/plain;charset=ISO-8859-1 Content-Length: 7 success |
||
|
Accessing a data target
named
strOut that returns XML
|
|||
|
Endpoint
|
http://host:port/SASBIWS/rest/storedProcesses/programs/outputTest/dataTargets/strOut
|
http://host:port/SASBIWS/rest/storedProcesses/programs/ioTest/dataTargets/strOut
|
http://host:port/SASBIWS/rest/outputTestWS/outputTest/dataTargets/strOut
|
|
Sample response
|
HTTP/1.1 200 OK Content-Type: text/xml;charset=utf-8 <streamOutput>contents</streamOutput> |
||
|
Accessing a data target
named
pdfOut that returns a PDF (binary data)
|
|||
|
Endpoint
|
http://host:port/SASBIWS/rest/storedProcesses/programs/outputTest/dataTargets/pdfOut
|
http://host:port/SASBIWS/rest/storedProcesses/programs/ioTest/dataTargets/pdfOut
|
http://host:port/SASBIWS/rest/outputTestWS/outputTest/dataTargets/pdfOut
|
|
Sample response
|
HTTP/1.1 200 OK Content-Type: application/pdf %PDF-1.3 %Äåòåë§ó ÐÄÆ 4 0 obj << /Length 5 0 R /Filter /FlateDecode >> stream x›ÝŽ7…ïû)x… |
||
|
Accessing the third
entry in package output, which is a PDF file
|
|||
|
Endpoint
|
http://host:port/SASBIWS/rest/storedProcesses/programs/outputTest/packageEntries/2
|
http://host:port/SASBIWS/rest/storedProcesses/programs/ioTest/packageEntries/2
|
http://host:port/SASBIWS/rest/outputTestWS/outputTest/packageEntries/2
|
|
Sample response
|
HTTP/1.1 200 OK Content-Type: application/pdf %PDF-1.3 %Äåòåë§ó ÐÄÆ 4 0 obj << /Length 5 0 R /Filter /FlateDecode >> stream x›ÝŽ7…ïû)x… |
||