您好我正在开发一个restfull wep api应用程序。我是web api的新手,对http动词有点困惑。我的任务是使用web api2编写服务。我在sql server中有一个表,我正在尝试围绕此表进行基本的crud操作。我想以json格式发送数据并以json的形式返回数据。例如,http://localhost:26079/api/User_Creation/1按预期返回json格式的数据。我的任务是在iis中托管上述方法,以便任何人都可以访问该方法来检索数据。我很困惑,如果我想将一些数据插入db,那么该方法是什么?我在controllera中有以下代码,我能够插入数据。
public void Post(Noor_Users users)
{
if (ModelState.IsValid)
{
entityObject.Noor_Users.Add(users);
int result = entityObject.SaveChanges();
}
}
当我插入数据时,我的网址将为http://localhost:26079/,但我如何将插入数据方法暴露给外界?我的要求如下。
URL:/user_creation
method:post
Request:parameters such as fname,lname as json
Response:0 for success 1 for failure and data(unique id assigned to each user)
我可以得到一些帮助吗?谢谢你的考虑。
答案 0 :(得分:2)
在考虑REST时,理解和设计它是非常重要的,因为您正在对该位置的资源采取措施,而不是进行远程函数调用。
所以我建议将API作为 - http://localhost:26079/api/User
代替 - http://localhost:26079/api/User_Creation
为了遵守REST主体。
这样做我非常清楚地说明api的用户将能够使用不同的动词即对资源(,在这种情况下是用户)执行操作。 GET
,POST
,PUT
和DELETE
。
查看有关使用API的一些示例 -
GET
请求称为api,POST
请求http://localhost:26079/api/User并在请求正文中发送用户信息Delete
请求PUT
请求调用http://localhost:26079/api/User/1并在请求正文中发送更新的用户信息请注意,我们只使用单一端点,通过更改不同的HTTP谓词对我们的用户执行不同的操作。
默认的asp.net web api模板提供了一些关于如何声明不同动词方法的好提示,例如: -
public class UserController : ApiController
{
// GET api/<controller>/1
public User Get(int id)
{
}
// POST api/<controller>
public void Post([FromBody]User user)
{
}
// PUT api/<controller>/1
public void Put(int id, [FromBody]User user)
{
}
// DELETE api/<controller>/1
public void Delete(int id)
{
}
}
答案 1 :(得分:0)
如果你想从Angular调用你的方法,你可以使用$ http.post()方法:
$scope.projectModel = [];
$scope.projectData = [
{id: 1, label: "TMS"},
{id: 2, label: "LMS"},
{id: 3, label: "NLMS"}
];
$scope.projectsettings = {
smartButtonTextConverter: function(itemText, originalItem) {
return itemText;
},
enableSearch : true,
scrollable : true
};
$scope.projectText = {
buttonDefaultText:"Select Project"
};
Here您可以找到更多信息。