GithubHelp home page GithubHelp logo

Comments (5)

jpsim avatar jpsim commented on June 25, 2024 1

So to your point: "there's no distinction between [] and nil" - yes, that's my reading of RFC6570.

In the last 24 hours I’ve come to realize that this is both correct and also very unfortunate.

Thanks for bringing receipts and actually referencing the specifications too!

from swift-openapi-generator.

jpsim avatar jpsim commented on June 25, 2024

I'm also noticing that this is the last query param, then the URL ends with a dangling &.

/foo?a=false&b=true&

from swift-openapi-generator.

jpsim avatar jpsim commented on June 25, 2024

Alternatively, we may want to go with the ?colors= syntax, which means that there's no distinction between [""] and [] which isn't great, but right now there's no distinction between [] and nil which is worse, because at least in the case where the values in the array are defined by an enum, [""] doesn't map to a real value anyway.

This would have the added advantage of being more conformant, and servers that look up the colors key get a value, whereas if they try to access colors[] they may not know that it maps to colors.

from swift-openapi-generator.

czechboy0 avatar czechboy0 commented on June 25, 2024

I'm also noticing that this is the last query param, then the URL ends with a dangling &.

/foo?a=false&b=true&

Can you please file a separate issue for this? Should be easy to fix hopefully.

from swift-openapi-generator.

czechboy0 avatar czechboy0 commented on June 25, 2024

Please double check me on this, but from my reading of the specifications, omitting any keys for an empty array seems like the correct behavior.

OpenAPI 3.1 form exploded query items: https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#style-values

Delegates the rules to https://datatracker.ietf.org/doc/html/rfc6570#section-3.2.8

Which adds the key only for items in the array. So if there are no items in the array, there are no keys in the URL.

Putting array= has a different meaning, that'd mean a single element of an empty string, which has a different meaning and could fail e.g. enum validation.

So to your point: "there's no distinction between [] and nil" - yes, that's my reading of RFC6570.

from swift-openapi-generator.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.