licenses.nuget.org
解題說明
引進授權運算式後,出現要有可靠服務的需求,該服務得提供個別授權識別碼的參考文字、例外狀況識別碼或授權運算式。 這項服務的另一項需求是要有穩定的 URL 結構描述,也就是連結不容易腐壞,以便我們可以安全地用它為較舊的用戶端提供回溯相容性。
Licenses.nuget.org 可滿足該角色。 Nuget.org 使用它來為使用授權運算式指定授權的套件提供授權文字參考。 nuget pack
或使用其他用戶端工具來封裝會設定 licenseUrl
元素以指向 licenses.nuget.org,為不支援 license
元素的舊版用戶端提供回溯相容性。
授權和例外狀況文字
licenses.nuget.org 上顯示的授權和授權例外狀況資訊會從SPDX專案的 授權清單數據存放庫複製。 信息顯示的格式會密切模擬 SPDX 網站本身所使用的格式,例如,請參閱 MIT on licenses.nuget.org 和 MIT on SPDX.org。
未由開放原始碼方案或免費軟體基礎核准的授權不會裝載於 licenses.nuget.org,且會排除。
除了純文本之外,還使用數種樣式來顯示授權。 根據 SPDX授權清單資料常見問題,紅色文字會被視為可取代,而藍色文字則視為可省略。 如需SPDX授權清單資料的詳細資訊,請參閱其 常見問題 和 SPDX授權範本規格。
請注意,數據會依特定方式從SPDX複製到 nuget.org licenses.nuget.org。 如果開放原始碼計劃或免費軟體基礎核准授權標識符,但未出現在 licenses.nuget.org 上,請 回報問題,而 nuget.org 小組會使用SPDX的最新數據更新 licenses.nuget.org 和 nuget.org 套件上傳驗證。
如果您是套件作者,對 licenses.nuget.org 上可用的共用授權文字不滿意,您可以考慮使用 內嵌授權文字 (<license type="file">
) 而不是 NuGet 套件的授權表達式。 這可讓您完全自定義授權條款,並在套件中包含自定義文字。
通訊協定
Licenses.nuget.org 是為了讓人們在瀏覽器中檢視並不會提供任何電腦可讀取的回應。
必須使用 HTTPS 通訊協定,而要求應該要以特定方式建構。 它只支援 GET
要求。
它接受授權運算式或授權例外狀況識別碼,作為以下方式指定的輸入。 請注意,授權運算式的所有元素都會區分大小寫,因此對 licenses.nuget.org 的所有輸入也都會區分大小寫。
授權運算式
要求
授權運算式 (包括運算式由單一授權組成的簡單情況) 必須要 URL 編碼,且用作 licenses.nuget.org 要求中的路徑。
授權運算式 | 要使用的 URL |
---|---|
MIT | https://licenses.nuget.org/MIT |
(MIT) | https://licenses.nuget.org/(MIT) |
(僅限 LGPL 2.0,FLTK 或 Apache-2.0+ 例外) | https://licenses.nuget.org/(LGPL-2.0-only%20WITH%20FLTK-exception%20OR%20Apache-2.0+) |
服務僅支援 nuget.org 所接受的授權標識碼和授權例外狀況標識碼。值得注意的是,這表示只會接受開放原始碼方案或免費軟體基礎所核准的授權標識碼。 包含不受支援授權識別碼或授權例外狀況識別碼的所有授權運算式,或是不符合授權運算式語法的所有授權運算式,都視為無效。
回應
Licenses.nuget.org 會回應包含有效授權運算式且具有 HTTP 200 狀態碼的要求,以及包含授權運算式描述的網頁:
- 如果提供的授權運算式包含單一授權識別碼,則會傳回包含該授權參考文字的網頁;
- 如果提供的授權運算式是複合授權運算式,則會傳回包含授權運算式以及個別授權或授權例外狀況參考連結的網頁。
包含無效授權運算式的任何要求會導致 HTTP 404 回應。
授權例外狀況
要求
授權例外狀況標識碼必須經過 URL 編碼,並做為要求中 licenses.nuget.org 的路徑。單一要求中只能提供單一授權例外狀況標識碼。 除了授權例外狀況識別碼以外沒有額外字元可以存在於 URL 的路徑部分中。
授權例外狀況識別碼 | 要使用的 URL |
---|---|
FLTK-exception | https://licenses.nuget.org/FLTK-exception |
openvpn-openssl-exception | https://licenses.nuget.org/openvpn-openssl-exception |
回應
Licenses.nuget.org 會回應具有已知授權例外狀況識別碼和 HTTP 200 回應的要求,以及指定授權例外狀況參考文字的網頁。
任何包含不支援授權例外狀況識別碼的要求會導致 HTTP 404 回應。