我有一个基本的API调用,它接受两个id并将它们添加到用户的收藏夹矩阵中。我已经在C#MVC中设置了这样的调用:
[Route("api/discovery/addToFavourite/{profileid}/{userid}")]
public void AddToFav(int profileid, int userid)
{
var Favourite = new Favourite();
Favourite.ProfileId = profileid;
Favourite.UserId = userid;
WildWalkDb.Favourites.Add(Favourite);
WildWalkDb.SaveChanges();
}
然后从Angular 2和TypeScript我得到:
addToFav(profileid) {
var headers = new Headers();
headers.append('Content-Type', 'application/json');
let options = new RequestOptions({ headers: headers });
return this.http.post(this.url + '/api/discovery/favourite/' + profileid + '/' + 1)
.toPromise()
.then(response => <string>response.statusText)
.catch(this.handleError);
}
我只需要使用参数运行该url而不传递任何Json或任何东西,但这会失败,大概是因为它在http.post调用上缺少其他参数。所以从这一切来看,我猜这不是最好的方法,也许我主要错过了帖子调用的工作方式?对我来说,拨打api电话的最佳方式是什么?
答案 0 :(得分:1)
如果不需要参数,请将它们设为可选,然后在运行时填充/提供它们,否则在呼叫点提供它们。
<强> - (编辑)强> 在呼叫点提供空值。