nodeSolidServer / nodeSolidServer/node-solid-server
POST does not work the way it did in 4.x
未關閉
還沒有人認領這個 Issue。
good first issue
test-case
- 主要語言
- JavaScript
- 星號
- 1.8k
- 分支
- 308
- PR 合併指標
- 30 天內沒有已合併 PR
描述
From my testing (test attached below) I notice these differences:
POST "foo", no content-type
4.x : "foo" text/turtle
5.x : 500
POST "foo.ttl", no content-type
4.x : "foo.ttl" text/turtle
5.x : 500
POST "foo", content-type=text/turtle
4.x : "foo" text/turtle
5.x : "foo.ttl" text/turtle
POST "foo.ttl", content-type=text/turtle
4.x : "foo.ttl.ttl" text/turtle
5.x : "foo.ttl.ttl" text/turtle
Here's the test. I ran it against solid.community for 5.x and against solid.openlinksw.com:8444 for 4.x
const auth = require('solid-auth-cli')
const text = "<> a <#test>."
const idp = "https://jeffz.solid.community"
const base = idp + "/public/nss5-test/"
const file = "test-file"
async function main(){
let session = await auth.login()
console.log("Logged in as <"+session.webId+">")
console.log("Using folder <"+base+">\n")
await test({
label : "POST, no content-type",
extension : "",
contentType : ""
})
await test({
label : "POST content-type=text/turtle",
extension : "",
contentType : "text/turtle"
})
await test({
label : "POST, no content-type",
extension : ".ttl",
contentType : ""
})
}
async function test(opts){
let url = file + opts.extension
console.log(" ",opts.label,"<"+url+">")
let headers = {
link : '<http://www.w3.org/ns/ldp#Resource>; rel="type"',
slug : url,
}
if(opts.contentType) headers["Content-type"]=opts.contentType
let res = await auth.fetch( base, {
method:"POST",
body:text,
headers:headers
})
if(!res.ok){
console.log(" ",res.status,res.statusText)
return
}
let location = idp + res.headers.get("location")
res = await auth.fetch( location )
location = location.replace(base,'')
if(res.ok) console.log(
" ",
res.status,
res.headers.get("content-type"),
location
)
else console.log(" ",res.status,res.statusText)
}
main()
貢獻指南
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
研究方向
首先,針對伺服器的 POST 端點執行所提供的 Node.js 測試,並比較每種檔案名稱和標頭組合的 status、Location 和 content-type 結果。當 5.x 的行為獲得修正,或明確與 issue 中顯示的 4.x 結果一致時,即表示完成。
由索引模型根據 Issue 內容生成。
評估
- 技術堆疊
- javascript
- 領域
- api, backend
- Issue 類型
- 缺陷
- 難度
- 3/5
- 預估耗時
- 1-2 天
- 活躍度
- 停滯
- 描述清晰度
- 基本清楚
- 新手友好度
- 35/100