Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Issue with s/or coercion in body-params spec

Abierto
#424 1 comentario 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
25/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
clojure
Área
api

Línea de trabajo

Empieza reproduciendo los casos de parámetros de body alternativos del issue mediante swagger-routes, context, resource y :coercion :spec. Rastrea cómo se gestiona s/or para el parámetro de body ::group e identifica las pruebas de coerción existentes o el punto de entrada que cubre las alternativas de spec. Se considera terminado cuando se aceptan tanto los payloads de Linux como los de Windows, mientras Swagger sigue exponiendo una alternativa.

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

Descripción

upstream-problem

Library Version(s)

2.0.0-alpha30

Problem

Specs containing or fail on alternate cases - this was working in 2.0.0-alpha28. Of course, the swagger definition can only show one of the or alternatives only, but any request payload that conforms to the spec should (and did) work - could this behaviour be reverted back please?

eg. in the below, the definition of the linux-group would display in the swagger page, but body params containing the windows group would fail, eg {:group {:linux-id 1}} - succeeds, {:group {:windows-id "1"}} - fails.

(s/def ::linux-id int?)
(s/def ::linux-group (s/keys :req-un [::linux-id]))

(s/def ::windows-id string?)
(s/def ::windows-group (s/keys :req-un [::windows-id]))

(s/def ::group (s/or :group ::linux-group 
                               :group ::windows-group))

(api (swagger-routes (context "/group" [] :coercion :spec (resource {:post {:parameters {:body-params ::group}}}))))
Lenguaje dominante
Clojure
Estrellas
1.1k
Forks
145
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

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.

Más de metosin/compojure-api

Todos los issues de metosin/compojure-api

Issues similares

Más issues de Clojure

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.