zoukankan      html  css  js  c++  java
  • Web API tutorial

    Web API

    First, we can refer to this link.

    Here, we make a quick tutorial. we build restful api using MVC Web API

    1. First Controller, In this Sample, we need to note these things.

    1.1 Controller should inherite from ApiController.

    1.2 For each Api, it is just a function. We need to specify the Route , HttpMethod, ReturnType.
    Route, MSDN, we can provide url only, as it is shown below.
    or along with the RouteName. For Detail About Route, we can refer Link

    1.3 For the returnType of the webapi, it Can be HttpResponseMessage, or concrete Type of ViewModel. Detail explanation of HttpResponseMessage.

    code Sample:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Net;
    using System.Net.Http;
    using System.Web.Http;
    using ERPWeb.ViewModel;
    
    namespace ERPWeb.Api.Controllers
    {
        public class ProductsController : ApiController
        {
            [HttpGet]
            [Route("api/Products")]
            public HttpResponseMessage GetAll()
            {
                List<ProductViewModel> productList = new List<ProductViewModel>();
                productList.Add(new ProductViewModel() { Id = 1, Name = "Product1", Size = 50, Count = 1000 });
                productList.Add(new ProductViewModel() { Id = 2, Name = "Product2", Size = 57, Count = 1000 });
               // return Request.CreateErrorResponse(HttpStatusCode.NotFound,"not found");
                return Request.CreateResponse(HttpStatusCode.OK, productList);
            }
    
            [HttpGet]
            [Route("api/Products/{Id}")]
            public HttpResponseMessage Get(int Id)
            {
                ProductViewModel pvm = new ProductViewModel() { Id = 2, Name = "Product2", Size = 57, Count = 1000 };
                return Request.CreateResponse(HttpStatusCode.OK, pvm);
            }
    
            [HttpPatch]
            [HttpPut]
            [Route("api/Products/{Id}")]
            public HttpResponseMessage Put(int Id,[FromBody] ProductViewModel updatedProduct)
            {
                updatedProduct.Name = "OK";
                return Request.CreateResponse(HttpStatusCode.OK, updatedProduct);
            }
    
            [HttpPost]
            [Route("api/Products")]
            public HttpResponseMessage Post([FromBody] ProductViewModel pvm)
            {
                pvm.Id = 3;
                pvm.Name = "Ok";
                return Request.CreateResponse(HttpStatusCode.OK, pvm);
            }
    
            [HttpDelete]
            [Route("api/Products/{Id}")]
            public HttpResponseMessage Delete(int Id)
            {
                if(Id==1)
                {
                    return Request.CreateResponse(HttpStatusCode.OK);
                }
                else
                {
                    return Request.CreateErrorResponse(HttpStatusCode.NotFound, "error");
                }
            }
        }
    }
    
  • 相关阅读:
    Delphi 与 DirectX 之 DelphiX(28): TDIB.Emboss;
    Delphi 与 DirectX 之 DelphiX(29): TDIB.AddMonoNoise();
    Delphi 与 DirectX 之 DelphiX(33): TDIB.SmoothRotateWrap();
    如何用w.bloggar从桌面发表文章
    可以插入图片了
    在首页可以查看阅读次数了
    .Text的MainFeed.aspx生成RSS的问题
    首页文章显示说明
    欢迎光临博客园
    如果想学习.Net Remoting,请看看MSDN上的一篇文章
  • 原文地址:https://www.cnblogs.com/kongshu-612/p/5949588.html
Copyright © 2011-2022 走看看