如何从/openapi.json返回的JSON文件中获取Swagger UI展示的HTTP请求建议示例值?
Absolutely, you can make this work! The example values you see in Swagger UI fall into two categories, and how you get them into your /openapi.json response depends on which category they belong to:
1. Swagger UI's auto-generated default examples
These are the generic placeholders (like "string" for string fields, 0 for numbers) that Swagger UI creates automatically when no explicit examples are defined in your OpenAPI spec. These won't show up in /openapi.json because they're generated client-side by the UI itself.
To get custom (or these-style) examples into your /openapi.json response, you need to explicitly define them in your OpenAPI specification.
2. Explicitly defined examples (will appear in /openapi.json)
You can add example or examples fields directly to your schema definitions, request bodies, or parameters. Here are some practical examples:
Adding examples to schema properties
components: schemas: User: type: object properties: username: type: string example: "john_doe" # This will show up in /openapi.json and Swagger UI age: type: integer example: 30
Adding a request body example
paths: /users: post: requestBody: content: application/json: schema: $ref: '#/components/schemas/User' example: username: "jane_smith" age: 28
Using framework-specific annotations (for auto-generated specs)
If you're using a framework that builds your OpenAPI spec automatically (like Spring Boot with Springdoc, FastAPI, etc.), use the framework's built-in tools to attach examples:
FastAPI example
from pydantic import BaseModel class User(BaseModel): username: str = "john_doe" # Default value doubles as an example age: int = 30
Springdoc (Java) example
import io.swagger.v3.oas.annotations.media.Schema; public class User { @Schema(example = "john_doe") private String username; @Schema(example = "30") private Integer age; // Getters and setters }
3. Dynamic example generation
If you need examples generated on-the-fly (e.g., based on real database data or business rules), you can extend your backend's spec generation logic:
- Fetch your base OpenAPI spec (either from a static file or generated by your framework)
- Traverse the spec's schemas, paths, and parameters
- Inject
examplefields programmatically before returning the/openapi.jsonresponse
Summary
The core point is: Swagger UI only displays examples that are defined in your OpenAPI spec (and thus present in /openapi.json) or auto-generates generic ones client-side. To get those examples into your /openapi.json response, you need to explicitly define them—either manually, via framework annotations, or dynamic code injection.
内容的提问来源于stack exchange,提问作者Stack Overflow

