Not possible to transform headers per request
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 50/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Estancado
- Stack tecnológico
- javascript
- Área
- api
Línea de trabajo
Comienza rastreando la creación de requests a través de la función interna deepMerge y del punto de entrada transformRequest, comparando cómo se reutiliza el objeto headers entre requests. Verifica el comportamiento con requests repetidos usando el ejemplo de transformRequest mostrado; se considera terminado cuando las transformaciones de headers por request ya no observan mutaciones de requests anteriores y el workaround documentado de custom-fetch sigue siendo innecesario.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
I'm using transformRequest to add custom header to the request before it is sent the following way:
const apiClient = redaxios.create({
baseURL,
headers: {
Accept: 'application/json',
'Content-Type': 'application/json; charset=utf-8',
},
transformRequest: [(data, headers) => {
console.log(headers['Payload-Signature']); // <-- here I see header set for previous request
if (data) headers['Payload-Signature'] = signRequestBody(data);
}],
});
As show in code above headers object is shared between requests and because of that it is not possible to customise headers per requests before one is sent.
The reason is that internal deepMerge function doesn't create a copy of 'options.header' property.
Expected behaviour:
I would expect it is possible to safely transform headers per request or modify other request props.
As a workaround I define a custom fetch:
const apiClient = redaxios.create({
baseURL,
headers: {
Accept: 'application/json',
'Content-Type': 'application/json; charset=utf-8',
},
fetch: (url, options) => fetch(url, {
...options,
headers: {
...options.headers,
'payload-signature': signRequestBody(options.body),
},
}),
});
- Lenguaje dominante
- JavaScript
- Estrellas
- 4.9k
- Forks
- 104
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de developit/redaxios
-
Dificultad 3/5 1-2 días Aptitud para principiantes 45/100
-
Mock redaxios with vi.mock() Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 25/100
-
Does redaxios support adaptor? Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
-
State of the project ? Abierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 20/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 42/100
Todos los issues de developit/redaxios
Issues similares
-
awaiting triage bug Causes friction Hop Gui P1 P2 Transforms
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
Improve Title Support Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
georgestephanis/p2026#40 ·
-
Enatega Customer and Rider app: Add-ons price is not visible to customer after order is placed. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
Margaret-Petersen/food-delivery-app-clone-react-native#1981 ·