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

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

Ouverte
#1,412 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Langage dominant
Python
Étoiles
2k
Forks
293
Merge moyen
34 min
PR mergées (30 j)
1

Description

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

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez par le modèle Operation dans openapi_python_client/schema/openapi_schema_pydantic/operation.py, ainsi que par la classe de données Endpoint et son constructeur dans openapi_python_client/parser/openapi.py. Suivez la façon dont les données de l’opération parviennent à l’Endpoint transmis aux templates Jinja, puis vérifiez qu’une opération deprecated expose endpoint.deprecated et que sa valeur par défaut est false lorsqu’elle n’est pas spécifiée.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
python
Domaine
tooling
Type d'issue
Bug
Difficulté
2/5
Temps estimé
1-3 heures
Activité
À l'abandon
Clarté
Clairement spécifiée
Accessibilité débutants
58/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.