Trailing slash on API URLs is very, very confusing
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 25/100
Línea de trabajo
Empieza reproduciendo las solicitudes POST y PATCH contra /api/patches/$NUMBER y /api/patches/$NUMBER/. Compara las respuestas de redirección, los métodos y el estado resultante del patch. Se considera terminado cuando el comportamiento de la API para la URL de un objeto individual sea coherente y esté documentado o corregido, de modo que las actualizaciones no se conviertan silenciosamente en no-ops.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
@stewart-ibm was complaining that his script to update patch states via the REST API wasn't working.
His script was POSTing the update to "/api/patches/$NUMBER", and receiving an HTTP 200 in response, but no update.
I did some digging and discovered that when you access "/api/patches/$NUMBER", you get back a 301 Moved Permanently to "/api/patches/$NUMBER/" (note trailing slash). It seems that when you do a POST and get a 301 in response, the behaviour is to try a GET on the redirected URL, rather than a POST.
Once I figured this out, I tried doing a POST on the correct URL with the trailing slash, got a 405 Method Not Allowed, and quickly realised the real problem was that we should have been doing a PATCH.
For good measure, I checked what happens when you send a PATCH without the trailing slash, you get a 301, my logs seem to indicate that the subsequent request to the 301 target URL is still a PATCH, yet for some reason the state doesn't update. Not sure why.
Anyway, the trailing slash thing is really confusing and I'm not sure if it's semantically appropriate for accessing an individual object.
Thoughts?
- Lenguaje dominante
- Python
- Estrellas
- 317
- Forks
- 91
- 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 getpatchwork/patchwork
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
getpatchwork/patchwork#668 ·
-
bug web-ui
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
getpatchwork/patchwork#546 · 2 comentarios ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 52/100
getpatchwork/patchwork#664 ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
getpatchwork/patchwork#663 ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 45/100
getpatchwork/patchwork#645 ·
Todos los issues de getpatchwork/patchwork
Issues similares
-
enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
canonical/paas-charm#368 · 1 comentario ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
tech debt
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
addition to tracking list Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
StevenBlack/hosts#3256 ·
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
qualcomm/qai-appbuilder#275 ·