Exemplo de REST API com script - amostras de script
Esses exemplos demonstram como criar vários scripts de recursos para uma REST API com script.
OBTER exemplo de parâmetros de consulta
Este exemplo demonstra como obter valores de parâmetro de consulta de uma solicitação.
/**
* GET - Sample Request API - Query Params
*/
(function process(/*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) {
var uri = request.uri;
var url = request.url;
var queryParams = request.queryParams;
var customHeader = request.getHeader('X-Custom');
return {
"uri": uri,
"url": url,
"queryParams": queryParams,
"customHeader": customHeader
};
})(request, response);
OBTER exemplo de parâmetros de caminho
Este exemplo demonstra como obter valores de parâmetro de caminho de uma solicitação.
/**
* GET - Sample Request API - Path Params
*/
(function process(/*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) {
var uri = request.uri;
var url = request.url;
var path = request.pathParams;
return {
"uri": uri,
"url": url,
"path_params": path,
"path.id": path.id
};
})(request, response);
Exemplo GET DE inclusão de script
Este exemplo demonstra como usar uma inclusão de script para fornecer uma resposta. Ao usar uma inclusão de script, você pode reutilizar código comum e manter a legibilidade nos scripts de serviço REST.
/**
* GET - Sample Request API - Script Include
*/
(function process(/*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) {
var responseObj = global.SampleDataUtil.getSampleJSON();
return responseObj;
})(request, response);
Exemplo de POST DE cadeia de caracteres
Este exemplo demonstra como analisar uma mensagem POST com um corpo de cadeia de caracteres e enviar uma resposta com base na solicitação.
/**
* POST - Sample Request API - dataString
* sample usage:
* var requestBody = request.body;
* var requestString = requestBody.dataString;
*/
(function process(/*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) {
var requestBody = request.body;
var requestString = requestBody.dataString;
return {"requestString": requestString};
})(request, response);
Exemplo DE POST binário
Este exemplo demonstra como analisar uma mensagem POST com um corpo binário e enviar uma resposta com base na solicitação.
/**
* POST - Sample Request API - Body
*/
(function process(/*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) {
var body = request.body.data;
//do any additional processing on the request body, such as inserting a new record.
return {
"body.id": body.id
};
})(request, response);
Exemplo de erro não aceitável
Este exemplo demonstra como responder com um erro não aceitável. Use este tipo de erro quando o valor do cabeçalho de aceitação de solicitação não for compatível com o serviço web.
/**
* Sample Not Acceptable Error Sample
*/
(function process(/*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) {
response.setError(new sn_ws_err.NotAcceptableError('sample error message'));
})(request, response);
Exemplo de erro de solicitação incorreta
Este exemplo demonstra como responder com um erro de solicitação incorreta. Use este tipo de erro para indicar um erro na sintaxe da solicitação.
/**
* Bad Request Error Sample
*/
(function process(/*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) {
response.setError(new sn_ws_err.BadRequestError('sample error message'));
})(request, response);
Exemplo de erro de conflito
Este exemplo demonstra como responder com um erro de conflito. Use este tipo de erro no caso de várias solicitações conflitantes, como várias atualizações no mesmo registro.
/**
* Error Response: Conflict Error Sample
*/
(function process(/*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) {
response.setError(new sn_ws_err.ConflictError('sample error message'));
})(request, response);
Exemplo de erro não encontrado
Este exemplo demonstra como responder com um erro não encontrado. Use este tipo de erro se o recurso solicitado não existir ou estiver indisponível.
/**
* Error Response: Not Found Error Sample
*/
(function process(/*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) {
response.setError(new sn_ws_err.NotFoundError('sample error message'));
})(request, response);
Exemplo de erro de tipo de mídia incompatível
Este exemplo demonstra como responder com um erro de tipo de mídia incompatível. Use este tipo de erro para indicar que o Content-Type da solicitação não é compatível.
/**
* Error Response: Unsupported Media Type Error Sample
*/
(function process(/*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) {
response.setError(new sn_ws_err.UnsupportedMediaTypeError('sample error message'));
})(request, response);
Exemplo de erro de serviço
Este exemplo demonstra como responder com um erro de serviço genérico. O objeto ServiceError permite definir o código de status, a mensagem e os detalhes do erro. Use um ServiceError se os tipos de erro predefinidos não atenderem às suas necessidades.
/**
* Error Response: Custom Error Sample
*/
(function process(/*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) {
var myError = new sn_ws_err.ServiceError();
myError.setStatus(418);
myError.setMessage("I am a Teapot");
myError.setDetail("Here are the details about this error");
response.setError(myError);
})(request, response);
Exemplo de erro de parênteses de função
Este exemplo demonstra que se uma função não for encapsulada entre parênteses, isso resultará em um erro. Incluir parênteses com todas as funções.
(function process(/*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) {
gs.info("message: {0}", request.body.data.message);
})(request, response);
function test() {
gs.info("test");
}(request, response);
Exemplo de erro de serialização
Este exemplo demonstra que se a solicitação for definida como um corpo para a resposta, isso poderá resultar em um erro de serialização.
setBody_request:
response.setBody(request);
Este exemplo demonstra que se a resposta for definida como um corpo para a resposta, isso poderá resultar em um erro de serialização.
setBody_response:
response.setBody(response);
Este exemplo demonstra que, se a solicitação for retornada, poderá resultar em um erro de serialização.
return_request:
return request;
Este exemplo demonstra que, se a resposta for retornada, poderá resultar em um erro de serialização.
return_response:
return response;
Exemplo de script de recurso REST com script
/**
* POST - Sample Request API - Body
*/
(function process(/*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) {
var body = request.body.data,
id0,name0,id1,name1;
name0 = body[0].name; // 'user0'
id0 = body[0].id; // '1234'
name1 = body[1].name; // 'user1'
id1 = body[1].id; // '5678'
return {
"id": id0,
"name": name0,
"id1": id1,
"name1": name1
};
})(request, response);Solicitações
| Solicitação JSON | Solicitação XML |
|---|---|
|
|
Respostas
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Transfer-Encoding: chunked
Date: Tue, 04 Aug 2015 15:20:44 GMT
Server: ServiceNow
Connection: close
Set-Cookie: BIGipServerpool_<Instance>=880838154.47166.0000; path=/
{"result":{"id":1234,"id1":5678,"name":"user0","name1":"user1"}}