-
Notifications
You must be signed in to change notification settings - Fork 9.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Clarification on the purpose of the API license? #726
Comments
I think the key word here is
The license effectively tells you if/how you could re-implement and/or relicense the exposed API design. [1] a PR to improve the clarity of the wording may be beneficial |
Closing due to inactivity - but please feel free to reopen the issue if necessary. |
I would like to reopen this because it's still very unclear in the specification of what is exactly the license coverage:
Is there an archive somewhere where the license field has been added and the reasoning behind? |
I second this question. I'm creating a definition for an internal api that third parties (customers of ours) can get access to to manage their accounts/information. The code itself is never exposed; only the swagger |
Agree with the above comments on this issue. The current definition of license in the docs is too vague and does not offer what it should be about. This issue should be reopened to be looked at to make the documentation more explicit and concrete on the purpose of this field. |
There seems to be support for clarifying the wording in the specification, so let's find some text that folks are comfortable with. Would the following addition be sufficient?
|
This feels almost contradictory to me - the first sentence says it's for "the API", the second is for "the API description". Do you need the first sentence at all if you have the second? |
Let me take a stab at this: (Again, I am only considering the APIs originating (in any way) from an OAD.) <----- So, if for some reason you intend for your API to be "used, modified, and distributed" as per the license type (i.e. MIT for example) and if we can accept the API's coupling to its OAD, then perhaps the license constraints apply to both the API and the OAD. Many commercial APIs (i.e. you pay to use the product, service, etc, and do not have access to the API's source and any other implementation detail outside of what is intended) do not seem to include Another point: Partner APIs. By their very nature these APIs are governed by the terms stipulated by all partners involved. Would they include a license? Not likely. Private APIs: All aspects of the API is already owned by the company/org. Why bother with a license? |
@miqui I'm not really clear what it means to "distribute an API". An API is, by definition, an interface, not an implementation. The actions I can think of that might be restricted by copyright, and therefore releasable under a license, are:
(Remember that a copyright license grants permissions that someone would not otherwise have; it is meaningless if they already have those permissions. It's possible that "license" could refer to something other than copyright, such as "acceptable usage"; but in that case, a different field such as "policy_url" would probably be more appropriate.) |
@IMSoP I'm fine with removing the first part. I agree with 1. I think this is what the license is for. Caveat: IANAL |
Hi @IMSoP I was trying to borrow the constraints language as described in the MIT license for example. Under MIT you can distribute, etc..etc. Perhaps, the term distribution confuses things. Although making an interface available is that not form of distribution?
Agree with you 100%. |
I am leaning ONLY towards point 1 and I'll leave it at that. The last thing I want is to get blamed for re-igniting a legal case. @darrelmiller I recommend we close this issue as unresolved UNLESS we remove the first part of your original proposal and go with the 2nd sentence. note: comments are my own. |
The consensus in this discussion seems to be
However the specs state four to five times
Checking a non-representative sample of 1000+ OpenAPI files
My recommendation: don't touch, close this issue without action. |
It's exactly the same as if you publish the SDK yourself: obviously, you're intending it to be used, but as copyright holder you have control over how it can be used. Most commonly, this means requiring attribution be included if derivative works are distributed, but it could also prohibit its use in software distributed commercially, for instance. It also generally includes disclaimers of liability, which could also apply: maybe you use an OpenAPI description to generate some code and an incorrectly labelled operation leads you to delete important data. For example, this official SDK for the MailerSend API is distributed under an MIT license; if they published an OpenAPI description for that same API, they would probably attach the same license, with the same meaning. The more I think about it, the more certain I am that linking to a "usage policy" in a field labelled "license" is wrong; those are more often a form of contract between you and an API provider, and are in addition to the copyright license for any software you base your client on. There are also no SPDX identifiers for such contracts, so the format of the current field makes no sense for that usage. In the MailerSend example, they have an API Use Policy which would apply even if you didn't use any of their SDKs. I think it might be reasonable to clarify
(As ever, it's up to the lawyers to argue about the line between "derived from" and "inspired by".) Then, add a separate field for license:
name: The MIT License
identifier: MIT
usagepolicy:
url: https://www.mailersend.com/legal/api-use-policy |
Usage policy is a very interesting concept. I suppose this is the same as an overall "developer policy" which I am more accustomed to. |
Cool. Thanks @ralfhandl . A long time a go I was curious about this since someone in my last company asked if we should use this attribute to internal API designs. I took a quick peek at APIS.guru and similar (most if not all did not use license attribute). |
In the Swagger 2.0 specification, there is support for adding a
License
as one of the informational fields and the description for this isLicense information for the exposed API.
This seems a bit ambiguous, since a license could potentially be understood to apply to one or more of the following contexts:
termsOfService
section though.I am guessing that the item 3 is the intended use for the license field, but I will admit that at first I thought it was meant for the first case and I could not see how a license would actually apply. Is it possible to get some clarification of how licenses should be picked here and where they do and do not apply?
The text was updated successfully, but these errors were encountered: