zoukankan      html  css  js  c++  java
  • 用ASP.NET Web API技术开发HTTP接口(二)

    在第一部分,我们创建了一个基本的ASP.NET Web API项目,新建成功了数据表,然后添加了一些测试数据,最后创建了API控制器,用json格式把数据表里面的内容成功输出到浏览器上。接下来我们将继续完成对数据的添加、修改、删除操作。

    添加操作

    public HttpResponseMessage Post(Friend friend)
     {
        if (ModelState.IsValid)
        {
            db.Friends.Add(friend);
            db.SaveChanges();
            return Request.CreateResponse(HttpStatusCode.Created, friend);
        }
        return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
    }

    首先对传入的数据进行验证,如果验证通过,则添加到数据库中,否则输出错误信息。

    修改、删除操作

    public HttpResponseMessage Put(Friend friend)
    {
        if (ModelState.IsValid)
        {
            db.Entry(friend).State = EntityState.Modified;
            db.SaveChanges();
            var response = Request.CreateResponse(HttpStatusCode.OK, friend);
            return response;
        }
        return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
    }
    
    public HttpResponseMessage Delete(int id)
    {
        var friend = db.Friends.Find(id);
        if (friend != null)
        {
            db.Friends.Remove(friend);
            db.SaveChanges();
            return Request.CreateResponse(HttpStatusCode.OK, friend);
        }
        return Request.CreateResponse(HttpStatusCode.NotFound);
    }

    和添加操作类似,用Linq语句操作Entity Framework,代码非常简洁高效。不同的方法名也对应了不同的操作,Get对应读取操作,Post对应添加操作,Put对应修改操作,Delete对应删除操作。

    API接口测试

    Advanced Rest Client是Chrome浏览器的一个插件,因此在浏览器上就可以直接调试各类API接口,比安装其他软件方便。只是这个插件要到Chrome应用商店去下载,因为被国内屏蔽的原因,需要翻墙后才能访问,下载地址是:https://chrome.google.com/webstore/detail/advanced-rest-client/hgmloofddffdnphfgcellkdfbfbjeloo

    测试过程比较简单,注意要选择对应的方法Get、Post、Put或Delete。

    下面这是调用删除数据的接口截图。

    下面是对这次API接口程序每个方法和URL地址的对应表格。

    控制器方法URL地址功能
    Get /api/friend 读取全部数据
    Post /api/friend (Friend model) 添加一条记录
    Put /api/friend (Friend model) 修改一条记录
    Delete /api/friend/id 删除一条记录
  • 相关阅读:
    【JAVA SE基础篇】49.文件字符流和字节数组流
    【JAVA SE基础篇】48.IO流四大抽象类介绍和字节流
    【JAVA SE基础篇】47.file类的方法
    【JAVA SE基础篇】46.IO流的介绍
    【HTML篇】4.HTML的内嵌标签、框架标签、表单
    【HTML篇】3.HTML的图片标签、超链接标签、表格标签
    【HTML篇】2.HTML的head标签和body标签
    【HTML篇】1.HTML的介绍、三大基石、标准文档结构
    【JAVA SE基础篇】45.迭代器、Collections工具类以及使用容器存储表格
    【JAVA SE基础篇】44.手工实现简易HashMap和HashSet
  • 原文地址:https://www.cnblogs.com/netalen/p/7265411.html
Copyright © 2011-2022 走看看