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

contentMediaType on multipart file fields generates string instead of Blob | File (OpenAPI 3.1 / FastAPI)

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

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
68/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Tranquilo
Stack tecnológico
openapi, typescript
Área
tooling

Línea de trabajo

Start at the TypeScript schema type-generation path and reproduce the issue with the provided OpenAPI 3.1 multipart schema. Trace how contentMediaType and format: binary are handled; done means file-like content media types generate Blob or Blob | File while other string fields remain strings, with the generated type checking for the shown consumer code.

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

Descripción

Summary

When an OpenAPI 3.1 spec describes a multipart file upload using contentMediaType (the OpenAPI 3.1 pattern), @openapi-codegen/typescript generates string instead of Blob (or Blob | File). This breaks TypeScript consumers that pass File objects to generated mutation hooks.

format: binary is handled correctly and maps to Blob.

Environment

  • @openapi-codegen/cli: 3.1.0
  • @openapi-codegen/typescript: 11.1.0
  • OpenAPI source: FastAPI app (app.openapi()), OpenAPI 3.1
  • FastAPI: ≥ 0.129 (uses contentMediaType for UploadFile instead of format: binary)

Reproduction

OpenAPI schema (multipart upload):

{
  "components": {
    "schemas": {
      "Body_upload_proposal_document": {
        "type": "object",
        "required": ["document", "opportunity_id"],
        "properties": {
          "document": {
            "type": "string",
            "contentMediaType": "application/octet-stream",
            "description": "Proposal document file"
          },
          "opportunity_id": {
            "type": "string"
          }
        }
      }
    }
  }
}

Generated today:

export type BodyUploadProposalDocument = {
  document: string;  // ❌
  opportunity_id: string;
};

Expected:

export type BodyUploadProposalDocument = {
  document: Blob | File;  // or Blob
  opportunity_id: string;
};

Consumer code that fails typecheck:

await uploadMutation.mutateAsync({
  body: {
    document: file, // File — TS2322: Type 'File' is not assignable to type 'string'
    opportunity_id: opportunityId,
  },
});

Context

Suggested fix

In schema type generation, when a property has:

  • type: string (or no explicit type), and
  • contentMediaType matching a file-like MIME type (application/octet-stream, image/*, etc.),

treat it the same as format: binary and emit Blob or Blob | File.

Lenguaje dominante
TypeScript
Estrellas
634
Forks
83
Métricas de merge de PR
Sin PR fusionados en 30 d

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

  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 fabien0102/openapi-codegen

Todos los issues de fabien0102/openapi-codegen

Issues similares

Más issues de TypeScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.