C# 编写Web API
来源:互联网 发布:java游戏开发前景 编辑:程序博客网 时间:2024/05/29 07:49
1)创建Web API项目
打开VS2012->FILE->New->Project->Web->ASP.NET MVC 4 Web Application, 修改名字为WebAPIApplication, 单击OK, 在Project Template中选择Web API,单击OK.
2)添加Controller Template选择Empty API controller名字为StudentValueController.cs代码如下
using System;using System.Collections.Generic;using System.Linq;using System.Net;using System.Net.Http;using System.Web.Http;namespace MvcApplication22.Controllers{ public class StudentValueController : ApiController { /// <summary> /// 根据搜索条件获取学生信息 /// GET /api/StudentValue/GetStudents?stuName=chad&stuAddress=jiaxing /// </summary> /// <param name="name">姓名</param> /// <param name="address">地址</param> /// <returns>满足条件的学生信息</returns> [HttpGet] public IEnumerable<StudentInfo> GetStudents(string stuName, string stuAddress) { using (DataClassesDataContext dcdc = new DataClassesDataContext()) { List<StudentInfo> items = dcdc.StudentInfos.ToList(); if (stuName != null) { items = items .Where(u => u.stuName.Contains(stuName)).ToList(); } if (stuAddress != null) { items = items .Where(u => u.stuAddress.Contains(stuAddress)).ToList(); } return items; } } /// <summary> /// 根据学生编号获取学生信息 /// GET /api/StudentValue/GetStudentById/{id} /// </summary> /// <param name="id">编号</param> /// <returns>学生信息</returns> [HttpGet] public StudentInfo GetStudentById(int id) { using (DataClassesDataContext dcdc = new DataClassesDataContext()) { return dcdc.StudentInfos .FirstOrDefault(u => u.stuId.Equals(id)); } } /// <summary> /// 添加学生信息 /// POST /api/StudentValue/AddStudent /// {stuName:'jack', stuAddress:'jiangsu'} /// </summary> /// <param name="item">学生信息</param> /// <returns>添加成功返回学生信息, 否则返回null</returns> [HttpPost] public StudentInfo AddStudent(StudentInfo item) { try { using (DataClassesDataContext dcdc = new DataClassesDataContext()) { dcdc.StudentInfos.InsertOnSubmit(item); dcdc.SubmitChanges(); return item; } } catch (Exception ex) { return null; } } /// <summary> /// 修改学生信息 /// PUT /api/StudentValue/UpdateStudent/{id} /// {stuName:'jack', stuAddress:'jiangsu'} /// </summary> /// <param name="id">编号</param> /// <param name="item">新的学生信息</param> /// <returns>更新成功返回学生信息, 否则返回null</returns> [HttpPut] public StudentInfo UpdateStudent(int id, StudentInfo item) { try { using (DataClassesDataContext dcdc = new DataClassesDataContext()) { StudentInfo newItem = dcdc.StudentInfos .FirstOrDefault(u => u.stuId == id); newItem.stuName = item.stuName; newItem.stuAddress = item.stuAddress; dcdc.SubmitChanges(); return newItem; } } catch (Exception ex) { return null; } } /// <summary> /// 删除学生信息 /// DELETE /api/StudentValue/DeleteStudent/{id} /// </summary> /// <param name="id">编号</param> /// <returns>删除成功返回true, 否则返回false</returns> [HttpDelete] public bool DeleteStudent(int id) { try { using (DataClassesDataContext dcdc = new DataClassesDataContext()) { StudentInfo item = dcdc.StudentInfos .FirstOrDefault(u => u.stuId.Equals(id)); dcdc.StudentInfos.DeleteOnSubmit(item); dcdc.SubmitChanges(); return true; } } catch (Exception ex) { return false; } } }}3)修改WebApiConfig.cs内容如下,主要是修改API访问路径
using System;using System.Collections.Generic;using System.Linq;using System.Web.Http;namespace MvcApplication2{ public static class WebApiConfig { public static void Register(HttpConfiguration config) { config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{action}/{id}", defaults: new { id = RouteParameter.Optional } ); } }}
4)用Firefox RESTClient测试编写的API
提示:在Body中添加json数据时请在Headers中添加Content-Type: application/json
0 0
- C# 编写Web API
- c# 编写能跨域的Web API
- c# 编写基站定位API接口解析
- C# Call Web API and Parse JSON
- C# 调用百度地图web服务API
- c# Win Form程序调用Web API
- Python3教程Web开发实战梳理-day9(编写API)
- 在C#中利用API编写关机程序
- C#借助API实现黑盒自动化测试工具的编写
- C#借助API实现黑盒自动化测试工具的编写
- UFT中C#编写单API测试.TXT
- C#借助API实现黑盒自动化测试工具的编写
- C#借助API实现黑盒自动化测试工具的编写
- 自己用C#编写的日期选择web自定义控件
- C#编写的日期选择web自定义控件
- C#编写WEB弹出Yes No 交互对话框
- c#调用delphi编写的SOAP Web Service(1)
- c#调用delphi编写的SOAP Web Service(2)
- FragmentPagerAdapter和FragmentStatePagerAdapter的区别
- uva_10250 - The Other Two Trees
- 【神经网络学习笔记】上证指数开盘指数预测
- 【个人机房重构】——泛型集合代替DataTable
- 嵌入式 Linux下怎么设置禁止别人PING我的IP(ICMP报文)
- C# 编写Web API
- 常见网络问题总结
- golang 编程误区
- 6.3.6 Card Game Cheater
- JS 跳出iframe框架
- Android Java 用 foreach 方式遍历 HashMap
- SGU 438. The Glorious Karlutka River =) (网络流,动态流问题)
- Qt5 Qprinter问题
- JS图片横向不间断滚动(从右到左)