--- title: Request slug: Web/API/Request tags: - API - Experimental - Fetch - Fetch API - Requisições - request translation_of: Web/API/Request ---
A interface Request
da Fetch API representa uma requisição de recursos.
Você pode criar um novo objeto Request
usando o construtor {{domxref("Request.Request()")}}, porém é mais provável que você encontre um objeto Request
que seja retornado como resultado de outra operação de API, como um service worker {{domxref("FetchEvent.request")}}.
Request
.GET
, POST
etc.)audio
, image
, iframe
etc.)client
).no-referrer
).cors
, no-cors
, same-origin
, navigate
.)omit
, same-origin
, include
).follow
, error
ou manual
.sha256-BpfBw7ivV8q2jLiT13fxDYAe2tJllusRSZ273h2nFSE=
).default
, reload
, no-cache
).Request
implementa {{domxref("Body")}}, então também possui as seguintes propriedades disponíveis:
Request
.Request
implementa {{domxref("Body")}}, então também possui os seguintes métodos disponíveis:
Nota: Os métodos de {{domxref("Body")}} só poderão ser executadas apenas uma vez; As chamadas subsequentes serão resolvidas com strings/ArrayBuffers vazias.
No exemplo a seguir, nós criamos uma nova requisição utilizando o construtor Request()
(para um arquivo de imagem no mesmo diretório do código) e, em seguida, nos retorna alguns valores das propriedades da requisição:
const myRequest = new Request('http://localhost/flowers.jpg'); const myURL = myRequest.url; // http://localhost/flowers.jpg const myMethod = myRequest.method; // GET const myCred = myRequest.credentials; // omit
Você poderá, então, solicitar uma nova requisição passando o objeto Request
como parâmetro para a chamada {{domxref("GlobalFetch.fetch()")}}, por exemplo:
fetch(myRequest) .then(response => response.blob()) .then(blob => { myImage.src = URL.createObjectURL(blob); });
No exemplo a seguir, nós criamos uma nova requisição utilizando o construtor Request()
com alguns valores iniciais e contendo o corpo para APIs que precisam processar essas informações:
const myRequest = new Request('http://localhost/api', {method: 'POST', body: '{"foo":"bar"}'}); const myURL = myRequest.url; // http://localhost/api const myMethod = myRequest.method; // POST const myCred = myRequest.credentials; // omit const bodyUsed = myRequest.bodyUsed; // true
Nota: O tipo do corpo poderá ser apenas: {{domxref("Blob")}}, {{domxref("BufferSource")}}, {{domxref("FormData")}}, {{domxref("URLSearchParams")}}, {{domxref("USVString")}} ou {{domxref("ReadableStream")}}. Para adicionar um objeto JSON ao corpo, é necessário converter esse objeto para string.
Você poderá, então, solicitar uma nova requisição passando o objeto Request
como parâmetro para a chamada {{domxref("GlobalFetch.fetch()")}}, por exemplo, e poderá capturar a resposta da seguinte forma:
fetch(myRequest) .then(response => { if (response.status === 200) { return response.json(); } else { throw new Error('Ops! Houve um erro em nosso servidor.'); } }) .then(response => { console.debug(response); // ... }).catch(error => { console.error(error); });
Specification | Status | Comment |
---|---|---|
{{SpecName('Fetch','#request-class','Request')}} | {{Spec2('Fetch')}} | Initial definition |
{{Compat("api.Request")}}