> ## Documentation Index
> Fetch the complete documentation index at: https://docs.appsignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# API de Sourcemaps

Sourcemaps são usados para obter o número original de linha e coluna a partir de um backtrace que aponta para um arquivo minificado ou transpilado.

Recomendamos usar [sourcemaps públicos](/front-end/sourcemaps#public-sourcemaps) sempre que possível. Builds que produzem muitos sourcemaps podem demorar bastante para serem enviados pelo nosso endpoint privado de sourcemaps.

Esta API fornece uma forma fácil de enviar sourcemaps privados para uso com [erros de frontend](/front-end/sourcemaps).

<Warning>
  Sourcemaps privados não serão usados para resolver backtraces do Node.js.

  Siga as [instruções de instalação do Node.js](/nodejs/3.x/installation#typescript-support) para configurar sua aplicação para emitir backtraces com sourcemap.
</Warning>

## Criar sourcemap

Este endpoint permite a criação de sourcemaps privados.

|                      |                                                           |
| -------------------- | --------------------------------------------------------- |
| Endpoint             | `/api/sourcemaps`                                         |
| Método da requisição | `POST`                                                    |
| Content-Type         | `multipart/form-data`                                     |
| Requer autenticação? | Sim ([Push API key](/appsignal/terminology#push-api-key)) |
| Formatos de resposta | JSON                                                      |

### Correspondência de sourcemaps

Vamos comparar os valores dos campos `name[]` com a URL completa do backtrace. Por exemplo, a seguinte linha de backtrace:

```shell Shell theme={null}
  at https://test.local/main.abc123.js:1:92623
```

Corresponderá a `name`: `https://test.local/main.abc123.js`.
Você pode adicionar vários `name`s em uma única requisição curl:

<CodeGroup>
  ```bash Bash theme={null}
  curl -k -X POST -H 'Content-Type: multipart/form-data' \
    -F 'name[]=https://test.local/main.abc123.js' \
    -F 'name[]=https://cdn.local/main.abc123.js' \
    -F 'revision=abcdef' \
    -F 'file=@/~project/main.js.map' \
    'https://appsignal.com/api/sourcemaps?push_api_key=xxx&app_name=AppSignal&environment=development'
  ```
</CodeGroup>

Observe que você só pode enviar um arquivo de sourcemap por vez; portanto, se tiver vários arquivos de sourcemap, terá que enviar uma requisição de upload para cada arquivo separadamente. O tamanho máximo de upload permitido para um arquivo de sourcemap é 100MB.

### Parâmetros

Todos os parâmetros, exceto `file`, podem ser enviados no corpo `POST` ou como parâmetros `GET`. Todos os parâmetros são **obrigatórios**.

| Parâmetro      | Tipo             | Descrição                                                                                                                                                                                |
| -------------- | ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `push_api_key` | String           | A{" "} [Push API key](/appsignal/terminology#push-api-key) da sua organização.                                                                                                           |
| `app_name`     | String           | Nome da aplicação no AppSignal na qual o sourcemap deve ser usado.                                                                                                                       |
| `environment`  | String           | Ambiente da aplicação no AppSignal no qual o sourcemap deve ser usado.                                                                                                                   |
| `revision`     | String           | Referência de revisão do [Deploy marker](/application/markers/deploy-markers){" "}.                                                                                                      |
| `name`         | Array of Strings | Lista de nomes de arquivos que o sourcemap cobre. Esta deve ser uma URL completa para o arquivo JavaScript minificado, como você vê no backtrace, incluindo quaisquer parâmetros de URL. |
| `file`         | File             | Sourcemap para upload.                                                                                                                                                                   |

### Respostas

* A API retornará um código de status HTTP `201` se for bem-sucedida.
* A API retornará um código de status HTTP `400` com uma resposta JSON quando ocorrer um erro de validação.
* A API retornará um código de status HTTP `404` se não existir um app para a combinação fornecida de app name, environment e Push API key.

Exemplo de corpo de resposta 400:

<CodeGroup>
  ```json JSON theme={null}
  { "errors": ["The following errors were found: Name can't be empty"] }
  ```
</CodeGroup>

### Exemplo

<CodeGroup>
  ```bash Bash theme={null}
  curl -k -X POST -H 'Content-Type: multipart/form-data' \
    -F 'name[]=https://localhost:3000/application.min.js?vsn=d ' \
    -F 'revision=abcdef' \
    -F 'file=@/~project/application.js.map' \
    'https://appsignal.com/api/sourcemaps?push_api_key=xxx&app_name=MyApp&environment=development'
  ```
</CodeGroup>
