How to get structured outputs in vllm?

I guess a better way is use this:

class Car(BaseModel):
    brand: str = Field(description="Brand name, usually same as the company name")
    model: str = Field(description="Model Name")

class Cars(BaseModel):
    car_list: list[Car]

json_schema = Car.model_json_schema()
completion = client.chat.completions.parse(
    model="qwen3-32b-bnb-4bit",
    messages=[{"role": "user", "content": "list 10 kinds of famous cars"}],
    # extra_body={"structured_outputs": {"json": Cars.model_json_schema()}},
    response_format=Cars,
)
print(completion.choices[0].message.content)