---
sourceDocument: Referência de API do Xanadu
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/pt-BR/xanadu/api-reference

 Release :

    - xanadu

ft:locale :

    - pt-BR

ft:publication_title :

    - Referência de API do Xanadu

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# Exemplo de Scripted REST API - amostras de script

# Exemplo de Scripted REST API - amostras de script {#ariaid-title1}

* Versão de lançamento: Xanadu
* 
* Atualizado 1 de ago. de 2024
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 4 min. de leitura

Esses exemplos demonstram como criar vários scripts de recursos para uma REST API com script.

## Exemplo GET 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);

## Exemplo 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 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 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 não estiver disponí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 com script

Este exemplo de script de recurso de REST API analisa os valores name e id do corpo da solicitação e retorna esses valores na resposta.

    /**
     * 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

A API pode aceitar solicitações XML e JSON.{#r_ScriptedRESTServiceScriptExamples__table_xkb_2vq_xs__entry__2}

| Solicitação JSON | Solicitação de XML |
|-|-|
| POST /api/sn_demo_api/v1/example/body HTTP/1.1 Content-Type: application/json Accept: application/json Host: <instance>.service-now.com Connection: close Content-Length: 91 [ { "name": "user0", "id": 1234 }, { "name": "user1", "id": 5678 } ] | POST /api/sn_demo_api/v1/example/body HTTP/1.1 Content-Type: application/xml Accept: application/json Host: <instance>.service-now.com Connection: close Content-Length: 152 <request><entry> <name>user0</name> <id>1234</id> </entry> <entry> <name>user1</name> <id>5678</id> </entry> </request> |
[Tabela 1. Solicitações]

{#r_ScriptedRESTServiceScriptExamples__table_xkb_2vq_xs}

## Respostas

Ambas as solicitações especificam application/json como o valor do cabeçalho Aceitar. Isso faz com que qualquer uma das respostas use a formatação JSON, mesmo se o tipo de conteúdo da solicitação for XML.

    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"}}


