# JavaScript Runtime APIs - Request

A interface `Request` representa uma requisição HTTP e integra a [Fetch API](/pt-br/documentacao/produtos/applications/functions/runtime-apis/javascript/fetch/).

### Como Funciona

O objeto Request pode ser construído e observado como propriedade de um [fetchevent](/pt-br/documentacao/produtos/applications/functions/runtime-apis/javascript/fetch-event/) recebido pela Function.

```js
addEventListener("fetch", event => {
  const request = event.request
  const url = "https://example.com"

  const myRequest = new Request(url, {
    body: request.body,
    headers: request.headers,
    method: request.method,
    redirect: request.redirect
  })

  //...
})
```

```js
addEventListener("fetch", event => {
  let request = event.request
})
```

### Construtor

`let request = new Request(input [, init])`

### Parâmetros

`Input`: `string | Request` - define o recurso que você deseja buscar por meio de uma URL ou objeto Request.

`Init`: `RequestInit` - opcional

### Propriedades

Todas as propriedades de um objeto Request inicial em event.request são definidas como somente leitura. Para modificar uma requisição, você deve criar um novo objeto Request e passar as opções para o construtor, conforme descrito a seguir.

`headers` - contém um objeto [Headers](https://developer.mozilla.org/en-US/docs/Web/API/Headers).

`method` - contém o método da requisição - GET, POST, por exemplo.

`url` - contém a URL da requisição.

`body` - um simples "getter" para ler o conteúdo do corpo através da interface ReadableStream.

`bodyUsed` - armazena um Booleano que declara se o corpo da requisição já foi utilizado em uma resposta.

`redirect` - contém o modo de redirecionamento para usar: follow, error ou manual.

`event.type`: `string`

`event.request`: `request`





---