openapi-generators / openapi-generators/openapi-python-client

The `deprecated` field from OpenAPI operations is parsed but not exposed to templates

Abierto
#1,412 1 comentario 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Lenguaje dominante
Python
Estrellas
2k
Forks
293
Merge medio
34 min
PR fusionados (30 d)
1

Descripción

Describe the bug

The deprecated field on OpenAPI operation objects is parsed into the Operation schema model (operation.py#L31), but it is never carried over to the Endpoint dataclass that is passed to Jinja templates (openapi.py#L132-L152).

This means there is no way to check endpoint.deprecated in a custom template to conditionally emit deprecation warnings, docstring annotations, or @deprecated decorators.

The Endpoint dataclass is missing a deprecated: bool field, and the constructor at openapi.py#L419-L427 does not pass data.deprecated through.

Expected behavior

The Endpoint dataclass should include a deprecated: bool = False field, populated from data.deprecated during construction, so that templates can use {% if endpoint.deprecated %} to customize output for deprecated operations.

OpenAPI Spec File

Any spec with a deprecated operation, for example:

paths:
  /example:
    get:
      operationId: getExample
      deprecated: true
      responses:
        '200':
          description: OK

Desktop (please complete the following information):

  • OS: macOS 26.3
  • Python Version: 3.9.6
  • openapi-python-client version: 0.28.2

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

Comience con el modelo Operation en openapi_python_client/schema/openapi_schema_pydantic/operation.py y con la clase de datos Endpoint y su constructor en openapi_python_client/parser/openapi.py. Siga cómo los datos de la operación llegan al Endpoint que se pasa a las plantillas de Jinja y, después, verifique que una operación deprecated expone endpoint.deprecated y que su valor predeterminado es false cuando no se especifica.

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

Evaluación

Stack tecnológico
python
Área
tooling
Tipo de issue
Error
Dificultad
2/5
Tiempo estimado
1-3 horas
Estado de actividad
Estancado
Claridad
Bien especificado
Aptitud para principiantes
58/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.