iT邦幫忙

0

API網址列 網址問題

  • 分享至 

  • xImage

您好:
一般WEB API,可以在
https://localhost:7270/Card
https://localhost:7270/Card/1
取得資料

而POST 可以在potman 傳遞要寫入
或 powershel

Invoke-RestMethod -SkipCertificateCheck https://localhost:7270/card `
 -Method 'POST' `
 -Headers @{ "Content-Type" = "application/json"; } `
 -Body "{`"name`": `"mycard`",`"description`": `"sample card`"}"

那是否有辦法 直接在網址列
https://localhost:7270/Card/post.....
寫入一筆資料呢?
謝謝

看更多先前的討論...收起先前的討論...
mobone iT邦新手 5 級 ‧ 2024-04-20 21:17:05 檢舉
https://localhost:7270/card?name=小名&mycard=""&description=描述&samep card=""
你這樣不能嗎?
mobone iT邦新手 5 級 ‧ 2024-04-20 21:18:46 檢舉
對了 網址的方式是使用GET做傳輸的,不是用POST做傳輸的,所以你程式碼那邊要設定
noway iT邦研究生 3 級 ‧ 2024-04-20 21:38:19 檢舉
您好:
謝謝
目前 以POST 為例,是以下這樣

[HttpPost]

public IActionResult Insert([FromBody] CardParameter paprmeter) {

_cards.Add(new Card {
Id=_cards.Any()? _cards.Max(card =>card.Id) +1 :0,
Name= paprmeter.Name,
Description = paprmeter.Description
}

);
return Ok();
}//--Insert
不建議用GET(網址直接串參數)的方式處理,長度跟POST差很多,安全性也很差,能用POSTMAN測試就別用瀏覽器自己整
froce iT邦大師 1 級 ‧ 2024-04-22 10:00:40 檢舉
用網址列送資料就是GET,就算你自己規定https://localhost:7270/Card/post這串網址是用來新增資料,他還是得用HTTP method POST去送資料,因為不用POST你在網址列寫個POST幹嘛...這有人去接你API一定會吐槽的。
API的I叫interface,本來就是為了把內部邏輯包成黑盒子給"其他人"用的,你亂搞到最後就是被別人笑。

另外新增資料用POST是為了兩件事:
1. 資安。POST在現代框架下的開發方式正常來說至少都會要求CSRF token或JWT token。
2. GET能送的資料長度受瀏覽器限制,最大長度不一定一樣。
noway iT邦研究生 3 級 ‧ 2024-04-22 10:35:12 檢舉
收到, 謝謝
目前單純只是想說,也無這種可能性
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
Yaowen
iT邦研究生 4 級 ‧ 2024-04-21 01:35:16
最佳解答

是可以,但違反 RESTful API 設計原則,下方網址你參考一下
RESTful API

一般不建議在用 GET 時候去做非查詢以外的動作

我要發表回答

立即登入回答