-
Notifications
You must be signed in to change notification settings - Fork 149
Description
Description
When a typo is made or a wrong property name is used in openapi.yaml schema declaration, no relevant diagnostic message is provided when running swift package generate-code-from-openapi. The only error message seen is this one:
Targets with names FooTarget don't contain any config or OpenAPI document files with expected names.
This message is incorrect, since both config and OpenAPI document are provided in the expected location. The actual underlying reason is that the OpenAPI document didn't pass validation, but validation diagnostic is not produced, which is very confusing.
Reproduction
Create an OpenAPI document that uses int and double types in the schema instead of integer and number:
openapi: '3.1.0'
info:
title: GreetingService
version: 1.0.0
servers:
- url: https://example.com/api
description: Example service deployment.
paths:
/summary:
get:
operationId: getSummary
parameters:
- name: name
required: false
in: query
description: The name used in the returned greeting.
schema:
type: string
responses:
'200':
description: A success response with a greeting.
content:
application/json:
schema:
$ref: '#/components/schemas/Greeting'
components:
schemas:
Greeting:
type: object
properties:
message:
type: string
floatingPoint:
type: double
integerValue:
type: intPackage version(s)
"location" : "https://github.com/apple/swift-openapi-generator.git",
"state" : {
"revision" : "ea291f05436363665ee67c453f4a72a895f18e75",
"version" : "1.9.0"
}Expected behavior
If openapi.yaml doesn't pass validation, a validation error should be produced, ideally with line/column information and an actionable suggestion for how the error can be fixed.
Environment
> swift --version
swift-driver version: 1.120.5 Apple Swift version 6.1.2 (swiftlang-6.1.2.1.2 clang-1700.0.13.5)
Target: arm64-apple-macosx15.0
Additional information
No response