• 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");
                }
            }
        }
    }
    
  • 相关阅读:
    线圈与触发器
    线圈
    sourceinsight 宏
    linu  micro time
    删除 .svn 文件夹
    !!!
    ACE_MAIN
    窗体的一些主要属性
    http协议的几个概念
    保留每个name的最新日期的数据
  • 原文地址:https://www.cnblogs.com/kongshu-612/p/5949588.html
Copyright © 2020-2023  润新知