Exemplo de Scripted REST API - amostras de script
Esses exemplos demonstram como criar vários scripts de recursos para uma REST API com script.
Exemplo de parâmetros de consulta GET
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);
Exemplo de GET 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 de inclusão de script GET
Este exemplo demonstra como usar uma inclusão de script para fornecer uma resposta. Ao usar uma inclusão de script, você pode reutilizar o 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 Aceitar 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 em caso de várias solicitações conflitantes, como várias atualizações para o 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 tipo de conteúdo 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 que você defina 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 script de recurso REST de 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 de 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"}}