Document optimistic concurrency: _metadata.version, ETag, If-Match → 412 (bundle #561)
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 73/100
- Tipo de issue
- Documentación
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Área
- documentation
Línea de trabajo
Lee la documentación existente de la API sobre los datos de componentes y páginas y, después, usa el comportamiento descrito en este issue para identificar dónde deben incluirse las indicaciones sobre concurrencia y actualizaciones. Documenta _metadata.version, el comportamiento de ETag e If-Match, los casos 412, el comando de migración y los requisitos de CORS; se considera terminado cuando la documentación de la API cubra estos detalles y remita la orientación sobre la UI y el orden a nivel de módulo a la documentación de módulos.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Bundle PR components-web-app/api-components-bundle#562 (issue #561) adds optimistic concurrency for components and page data. To document:
_metadata.version: an integer for each row, set by Doctrine's#[ORM\Version]. A draft has its own version, starting at 1. Signed-in responses also sendETag: "<version>"; anonymous responses are unchanged.If-Match: "<version>"on PATCH, PUT and DELETE is compared with the row the URL addresses. A stale version gets 412 with the current resource in GET shape. A write to a published IRI that would be redirected to an existing draft also gets 412, with the draft as the body.- A save that loses a race at commit gets 412 too, with or without
If-Match. A DELETE is checked only againstIf-Match. - The order PATCH and
/moveignoreIf-Match. - Upgrade: a new
resource_versioncolumn, so rundoctrine:migrations:diff. - CORS for cross-origin apps: expose
ETagand allowIf-Match.
The module side (conflict UI, ordering updates by version) is the module's own docs.
- Lenguaje dominante
- TypeScript
- Estrellas
- 0
- Forks
- 0
- Merge medio
- 1 h 20 min
- PR fusionados (30 d)
- 1
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
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 components-web-app/docs
-
documentation
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
components-web-app/docs#290 · 2 comentarios ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
components-web-app/docs#289 · 2 comentarios ·
-
documentation
Dificultad 4/5 3-5 días Aptitud para principiantes 43/100
components-web-app/docs#285 ·
-
documentation
Dificultad 4/5 1-2 días Aptitud para principiantes 35/100
components-web-app/docs#284 ·
-
enhancement
Dificultad 5/5 Más de una semana Aptitud para principiantes 15/100
components-web-app/docs#237 · 2 comentarios ·
Todos los issues de components-web-app/docs
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 1/5 Menos de una hora Aptitud para principiantes 76/100
logto-io/logto#9837 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
community first-timers-only good first issue hacktoberfest help wanted low hanging fruit up-for-grabs
Dificultad 1/5 Menos de una hora Aptitud para principiantes 76/100
lingdojo/kana-dojo#32964 · 1 comentario · 5 reacciones ·
Los mantenedores suelen responder en 1 día
-
Documentation status: needs triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
mastra-ai/mastra#28194 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
priority-low refactor-3
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
Los mantenedores suelen responder en 3 días