DMOZ中文网站分类目录-免费收录各类优秀网站的中文网站目录.
  • DmozDir.org
DMOZ目录快速登录入口-免费收录各类优秀网站的中文网站目录.由人工编辑,并提供网站分类目录检索及地区分类目录检索,是站长免费推广网站的有力平台!

ASP.NET MVC 4  - 网页API

  • ASP.NET MVC 4  - 网页API

  • 已被浏览: 50 次2020年10月11日    来源:  DMOZ中文网站分类目录
  • ASP.NET 4的测试版刚刚发布,以及ASP迷马尔科姆·谢里丹在这里带我们通过

    测试版刚刚发布了ASP.NET 4在包括在本新闻稿中的许多新功能是Web API框架,但它是什么?基本上,它允许您创建可以通过HTTP,而不是通过正式的服务,如WCF或SOAP暴露服务。如果你曾经使用过Facebook或Twiiter API,你已经很熟悉他们。对我来说,这是最令人兴奋的新功能之一!

    网络API本来是WCF的Web API项目。开发一个API这种方式意味着你接着WCF管辖规则;开始与一个接口,从接口创建类来导出,然后装饰与WCF接口属性而形成端点。这不是一个流畅的过程。 WCF是艰难的,人们喜欢的难易程度是ASP.NET允许,微软看到这一点,并创建的Web API。他们把从WCF的Web API最好的作品和易于开发的是ASP.NET MVC允许。

    安装

    现在,您可以通过我们的平台安装了Visual Studio 2010的安装MVC 4 beta版。这需要ASP.NET 4,如果你以前没有安装,可以从这里下载。

    Visual Studio的2011开发者预览版也刚刚被公布于众。作为ASPInsider,我们已经获得释放相当长的一段时间,我很高兴与新地铁的外观和感觉。如果你想安装它,它可以在这里下载。所有的代码和屏幕截图都是来自新版本。

    入门

    开始编写了第一个Web API,开放工作室2011,并选择ASP.NET MVC 4 Web应用程序。项目模板对话框将在下一个弹出。有一对夫妇的新选择,如移动应用程序和单页应用(SPA),但现在选择的Web API。

    在看代码之前,打开Global.asax文件,并看一看缺省路由。

    <预的tabindex = “0”> <代码>公共静态无效RegisterApis(HttpConfiguration配置){

    config.Routes.MapHttpRoute(

    “默认”,//路线名称

    “{控制器} /(编号)”,// URL与参数

    新{ID = RouteParameter.Optional} //参数的默认值

    );

    }

    保护无效的Application_Start(){

    RegisterApis(GlobalConfiguration.Configuration);

    }

    bewteen MVC路线和Web API路线的主要区别是有没有为一个动作定义路线。这是由于Web API使用HTTP方法,而不是URI路径,选择的动作。

    我创建了一个简单的产品类来表示模型,并补充说,到Models文件夹。

    <预的tabindex = “0”> <代码>公共类产品{

    公众诠释ID {获得;组; }

    大众双价{获得;组; }

    公共字符串名称{;组; }

    }

    现在,我要添加一个名为ProductController的新控制器。这里也有一些新的补充,你可以在这个对话框脚手架选项中进行选择,但是现在我要生成一个空的控制器。

    控制器看起来是一样的,但网络API控制器从ApiController派生。

    <预的tabindex = “0”> <代码>公共类ProductController的:ApiController {

    // GET:/产品/

    公众的ActionResult指数(){

    返回查看();

    }

    }

    记的网络API使用HTTP方法,这样我们就可以绘制出以下HTTP方法:

    <表宽度= “60%”> 动作

    HTTP方法

    相对URI

    获得的所有产品的列表

    GET

    /产品

    由ID获得的产物

    GET

    /产品/ ID

    创建一个新的产品

    POST

    /产品

    更新的产物

    PUT

    /产品/ ID

    删除产品

    DELETE

    /产品/ ID

    在网络API的命名约定遵循的HTTP方法的名称,GET / POST / PUT / DELETE。你会看到这些是如何映射到代码在下面的章节。

    GET操作

    <预的tabindex = “0”> <代码>公开名单<产品>获取(){

    返回_productsRepository.ToList();

    }

    公共产品获取(INT ID){

    返回_productsRepository.First(p值=> p.ID == ID);

    }

    请注意我是如何定义的两个Get行动?这是因为当用户调用的API,他们将在HTTP方法通过。如果传入的请求是GET请求,并且它不具有一个ID,它会调用get行动回报的产品列表。如果一个ID是存在的,它会调用特定产品的获取动作。尼斯和简单。你怎么可以测试这个代码?我将使用Fiddler这一点。如果你从来没有使用过它,你应该得到它。

    使用招我可以创建在作曲家建设者的GET请求。调用HTTP://本地主机:1717 /产品将退回的产品列表。

    如果我想只有一个产品,我可以传递一个ID; HTTP://本地主机:1717 /产品/ 1。默认情况下,JSON是从所有的行动方法返回。如果你想有一个不同的格式,如XML,只需添加在接受请求头应用程序/ XML:在不改变任何代码,返回的结果XML。

    POST操作

    <预的tabindex = “0”> <代码>公共无效后(产品产品){

    _productsRepository.Add(产品)

    }

    从GET请求继是POST请求。这是数据将被创建。再次,我已经命名的动作一样的HTTP动词,所以一切我需要改变就是添加内容类型为application / JSON和发送的JSON对象。我可以在提琴手添加以下请求标头发布新产品。

    如果您检查HTTP响应代码,你会看到它返回200,这是确定的,但对于一个POST应该非常返回201个状态码。这将显示给用户,该产品是成功的。另外201米的都应该有一个位置值,所以我们将添加谓也。

    <预的tabindex = “0”> <代码>公共HttpResponseMessage <产品>发布(产品产品){

    _productsRepository.Add(产品);

    VAR响应=新HttpResponseMessage <产品>(产物,HttpStatusCode.Created);

    串URI = Url.Route( “HTTP://本地主机:1717 /”,新的{ID = contact.Id});

    response.Headers.Location =新URI(Request.RequestUri,URI);

    返回响应;

    }

    而不是返回空的,我们返回一个新的类型HttpResponseMessage 。这使您可以改变返回的状态代码的灵活性和响应标题。现在,如果你通过提琴手运行它,你会看到返回的201加Location头。

    PUT操作

    <预的tabindex = “0”> <代码>公共无效穿戴(产品产品){

    _productsRepository.Update(产品)

    }

    把行动升级的资源,所以返回一个200或204的罚款。默认情况下,200返回,所以出于这个原因,我们没有做任何的动作。

    值得一提的是该职位,并把行动我送JSON。如果我改变了内容类型为XML,我可以轻松地发送XML而不是JSON,而无需更改API中的任何代码。网络API自动断开传入的请求到强类型的对象,并映射名称的属性。

    删除操作

    <预的tabindex = “0”> <代码>公共无效删除(产品产品){

    _productsRepository.Delete(产品)

    }

    删除操作删除的资源,所以这取决于如果资源被立即删除,或者在以后的阶段可以确定的状态代码。如果资源被立即删除,状态码应该是200。如果缺失则可能是后一阶段,则应该返回202个状态码。

    <预的tabindex = “0”> <代码>公共HttpResponseMessage <产品>删除(产品产品){

    _productsRepository.Delete(产品);

    VAR响应=新HttpResponseMessage <产品>(产物,HttpStatusCode.Deleted);

    返回响应;

    }

    我只触及的Web API的表面,在未来几周,我会探索不同的方式来使用它。


    以上信息来源于网络,如有侵权,请联系站长删除。

    TAG:asp net mvc

  • 上一篇:【kimol君的无聊小发明】—用python写图片下载器
  • 与“ASP.NET MVC 4 - 网页API”相关的资讯
  • XV6学习(16)Lab net: Network stack
  • .NET并发编程-函数闭包
  • .NET 5学习笔记(10)——Entity Framework Core之切换SQLServer和SQLite
  • C#/.NET/.NET Core推荐学习书籍(升职加薪,你值得拥有)
  • .NET 微服务