ProjectTech4DevAI / ProjectTech4DevAI/kaapi-backend

Idempotency key for expensive POST requests

Abierto
#618 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Lenguaje dominante
Python
Estrellas
18
Forks
10
Merge medio
2 d 20 h
PR fusionados (30 d)
14

Descripción

Is your feature request related to a problem? Please describe.
Clients retrying POST actions is bad especially when it's expensive like in documents.

Describe the solution you'd like
To overcome processing expensive duplicate requests, we can introduce an idempotency_key in requests which clients can use to retry. This idempotency_key needs to be stored against the relevant entity, so when users/clients retries creating the same entity, entity creation can be skipped and the API can just return the already existing entity.

Additional context
See Stripe's API docs - https://docs.stripe.com/api/idempotent_requests

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

El issue no especifica archivos, pruebas ni puntos de entrada. Empieza localizando los handlers POST y el modelo de persistencia de la entidad relevante; después, lee la documentación de Stripe sobre solicitudes idempotentes. Se considera terminado cuando los reintentos duplicados con la misma clave omiten la creación de la entidad y devuelven la entidad existente.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
python
Área
api, backend, databases
Tipo de issue
Nueva funcionalidad
Dificultad
5/5
Tiempo estimado
Más de una semana
Estado de actividad
Estancado
Claridad
Necesita aclaración
Aptitud para principiantes
25/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.