Skip to content

Support parsing Swagger Specification #3

@blast-hardcheese

Description

@blast-hardcheese

I'm interested in writing a Scala competitor to swagger-codegen using Argus and scala.meta.

Currently unsupported:

  • anyOf / allOf "Should be simple to add, just haven't done it yet."

allOf is all that's needed, but anyOf should be implemented for completeness

  • default "Schemas can specify the default value to use for a field. Currently we just ignore these."

Needed, but would prefer to implement default values in a way that doesn't leverage case class default parameters. Open to discussion, but it violates a wartremover wart (and a convincing argument against default properties).

  • not "Not sure how you could specify this in a type language. Needs more thoughts"

As with default values, validation could be generated as a separate structure that could be optionally applied by consumers of a generated argus case class schema.

  • additionalProperties / additionalItems "Json schema lets you specify free-form properties too. These are unsupported for now (although I think this should be easy now there's supprot(sic) for Any types)"

Only additionalProperties are required, but additionalItems should be supported as well.

  • patternProperties "What should be the objects fields in this case? Maybe we just make it a Map?"

Unnecessary

  • dependencies. "Dependencies can also extend the schema... sigh."

Doesn't seem necessary

  • Any of the validation-only info, such as maxItems, since it doesn't contribute to the structure.

Could be combined with the validation structure generated by not


I'd be interested in feedback for some of these ideas before I start trying to implement some of them.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions