亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

WebApi增刪改查Demo

2019-11-17 02:04:04
字體:
來源:轉載
供稿:網友

WebApi增刪改查Demo

1.新建webapi項目

2.配置WebApiConfig

public const string DEFAULT_ROUTE_NAME = "MyDefaultRoute";        public static void Register(HttpConfiguration config)        {            config.Routes.MapHttPRoute(                name: DEFAULT_ROUTE_NAME,                routeTemplate: "api/{controller}/{id}",                defaults: new { id = RouteParameter.Optional }            );            // 取消注釋下面的代碼行可對具有 IQueryable 或 IQueryable<T> 返回類型的操作啟用查詢支持。            // 若要避免處理意外查詢或惡意查詢,請使用 QueryableAttribute 上的驗證設置來驗證傳入查詢。            // 有關詳細信息,請訪問 http://go.microsoft.com/fwlink/?LinkId=279712。            //config.EnableQuerySupport();            // 若要在應用程序中禁用跟蹤,請注釋掉或刪除以下代碼行            // 有關詳細信息,請參閱: http://www.asp.net/web-api            config.EnableSystemDiagnosticsTracing();        }

3.在models文件新建person模型

public class Person    {        public int Id { get; set; }        public string FirstName { get; set; }        public string LastName { get; set; }    }

4.在models文件中添加ipersonRepository

interface IPersonRepository    {        IEnumerable<Person> GetAll();        Person Get(int id);        Person Add(Person person);        void Remove(int id);        bool Update(Person person);    }

5.在models文件中添加倉庫實現

public class PersonRepository : IPersonRepository    {        // We are using the list and _fakeDatabaseID to represent what would        // most likely be a database of some sort, with an auto-incrementing ID field:        private List<Person> _people = new List<Person>();        private int _fakeDatabaseID = 1;        public PersonRepository()        {            // For the moment, we will load some sample data during initialization.             this.Add(new Person { LastName = "Lennon", FirstName = "John" });            this.Add(new Person { LastName = "McCartney", FirstName = "Paul" });            this.Add(new Person { LastName = "Harrison", FirstName = "George" });            this.Add(new Person { LastName = "Starr", FirstName = "Ringo" });        }        public IEnumerable<Person> GetAll()        {            return _people;        }        public Person Get(int id)        {            return _people.Find(p => p.Id == id);        }        public Person Add(Person person)        {            if (person == null)            {                throw new ArgumentNullException("person");            }            person.Id = _fakeDatabaseID++;            _people.Add(person);            return person;        }        public void Remove(int id)        {            _people.RemoveAll(p => p.Id == id);        }        public bool Update(Person person)        {            if (person == null)            {                throw new ArgumentNullException("person");            }            int index = _people.FindIndex(p => p.Id == person.Id);            if (index == -1)            {                return false;            }            _people.RemoveAt(index);            _people.Add(person);            return true;        }    }

6.在controllers中添加apiController為PersonController

public class PersonController : ApiController    {        static readonly IPersonRepository databasePlaceholder = new PersonRepository();        public IEnumerable<Person> GetAllPeople()        {            return databasePlaceholder.GetAll();        }        public Person GetPersonByID(int id)        {            Person person = databasePlaceholder.Get(id);            if (person == null)            {                throw new HttpResponseException(HttpStatusCode.NotFound);            }            return person;        }        public HttpResponseMessage PostPerson(Person person)        {            person = databasePlaceholder.Add(person);            string apiName = WebApi.WebApiConfig.DEFAULT_ROUTE_NAME;            var response =                this.Request.CreateResponse<Person>(HttpStatusCode.Created, person);            string uri = Url.Link(apiName, new { id = person.Id });            response.Headers.Location = new Uri(uri);            return response;        }        public bool PutPerson(Person person)        {            if (!databasePlaceholder.Update(person))            {                throw new HttpResponseException(HttpStatusCode.NotFound);            }            return true;        }        public void DeletePerson(int id)        {            Person person = databasePlaceholder.Get(id);            if (person == null)            {                throw new HttpResponseException(HttpStatusCode.NotFound);            }            databasePlaceholder.Remove(id);        }    }

以上就完成了webapi的簡單搭建。接下來創建客戶端來訪問webapi。

7.新建console項目,添加webapi Core Library。

添加引用

using System.Net.Http; using Newtonsoft.Json.Linq;

private const string url = "http://localhost:43571/";        static void Main(string[] args)        {            Console.WriteLine("Retreive All The People:");            JArray people = GetAllPerson();             foreach (var person in people)            {                Console.WriteLine(person);            }            // WRITE A SPECIFIC PERSON TO CONSOLE (JSON):            Console.WriteLine(Environment.NewLine + "Retreive a Person by ID:");            JObject singlePerson = GetPerson(2);            Console.WriteLine(singlePerson);            // ADD NEW PERSON, THEN WRITE TO CONSOLE (JSON):            Console.WriteLine(Environment.NewLine + "Add a new Person and return the new object:");            JObject newPerson = AddPerson("Atten", "John");            Console.WriteLine(newPerson);            // UPDATE AN EXISTING PERSON, THEN WRITE TO CONSOLE (JSON):            Console.WriteLine(Environment.NewLine + "Update an existing Person and return a boolean:");            // Pretend we already had a person's data:            JObject personToUpdate = GetPerson(2);            string newLastName = "Richards";            Console.WriteLine("Update Last Name of " + personToUpdate + "to " + newLastName);            // Pretend we don't already know the Id:            int id = personToUpdate.Value<int>("Id");            string FirstName = personToUpdate.Value<string>("FirstName");            string LastName = personToUpdate.Value<string>("LastName");            if (UpdatePerson(id, newLastName, FirstName))            {                Console.WriteLine(Environment.NewLine + "Updated person:");                Console.WriteLine(GetPerson(id));            }            // DELETE AN EXISTING PERSON BY ID:            Console.WriteLine(Environment.NewLine + "Delete person object:");            DeletePerson(5);            // WRITE THE UPDATED LIST TO THE CONSOLE:            {                // WRITE ALL PEOPLE TO CONSOLE                Console.WriteLine("Retreive All The People using classes:");                people = GetAllPerson();                foreach (var person in people)                {                    Console.WriteLine(person);                }            }            Console.Read();        }        /// <summary>        /// get all Person        /// </summary>        /// <returns></returns>        static JArray GetAllPerson()        {            HttpClient client = new HttpClient();            HttpResponseMessage response = client.GetAsync(url + "api/person").Result;            return response.Content.ReadAsAsync<JArray>().Result;        }        static JObject GetPerson(int id)        {            HttpClient client = new HttpClient();            HttpResponseMessage response = client.GetAsync(url + "api/person/" + id).Result;            return response.Content.ReadAsAsync<JObject>().Result;        }        static JObject AddPerson(string newLastName, string newFirstName)        {            var newPerson = new { LastName
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
5566日本婷婷色中文字幕97| 欧美激情aaaa| 日韩成人中文电影| 欧美日韩精品中文字幕| 午夜精品一区二区三区在线视频| 久久久久久亚洲精品中文字幕| 精品久久久国产| 日韩精品在线视频观看| 最新的欧美黄色| 成人免费福利视频| 日韩精品亚洲视频| 国产亚洲精品久久久久久777| 成人精品视频99在线观看免费| 日韩av免费在线| 亚洲视频在线免费看| 日韩在线视频导航| 神马国产精品影院av| 一道本无吗dⅴd在线播放一区| 国产精品啪视频| 岛国av在线不卡| 国产精品丝袜久久久久久高清| 国产成人久久精品| 亚洲第一网站免费视频| 欧美成人精品在线播放| 成人高清视频观看www| 亚洲精品国产免费| 日本不卡视频在线播放| 夜夜嗨av一区二区三区四区| 亚洲欧美综合另类中字| 亚洲自拍偷拍色片视频| 日韩成人免费视频| 亚洲成人教育av| 91国内揄拍国内精品对白| 亚洲欧美精品中文字幕在线| 国产日韩欧美电影在线观看| 国产精品99久久久久久久久久久久| 在线观看日韩av| 中文字幕在线观看日韩| 在线成人中文字幕| 欧美国产精品va在线观看| 国产在线精品播放| 91国语精品自产拍在线观看性色| 亚洲一二三在线| 九九九热精品免费视频观看网站| 中文字幕精品一区久久久久| 性色av一区二区三区| 九九综合九九综合| www国产精品视频| 亚洲剧情一区二区| 亚洲国产精品久久91精品| 国产精品美女久久久久久免费| 中文字幕国产日韩| 青青久久aⅴ北条麻妃| 久久综合网hezyo| 久久人人爽人人| 久久艳片www.17c.com| 欧美在线视频一二三| 68精品国产免费久久久久久婷婷| 久久久久久91香蕉国产| 精品电影在线观看| 国产精品a久久久久久| 日韩亚洲欧美中文高清在线| 日韩精品亚洲元码| 亚洲国语精品自产拍在线观看| 亚洲欧美激情四射在线日| 狠狠综合久久av一区二区小说| 国产精品久久91| 欧美激情一区二区久久久| 久久久爽爽爽美女图片| 国产精自产拍久久久久久蜜| 欧美在线影院在线视频| 亚洲精品久久久久国产| 久久精品国产精品亚洲| 国产精品成人av在线| 亚洲经典中文字幕| 精品久久久久久国产91| 亚洲欧洲成视频免费观看| 日韩欧美a级成人黄色| 亚洲国产小视频在线观看| 欧美日韩国产成人在线观看| 久久久久久久激情视频| 成人两性免费视频| 一区三区二区视频| 97超级碰在线看视频免费在线看| 欧美日韩国产一区在线| 91久久久久久久久久久| 国产精品日韩久久久久| 尤物yw午夜国产精品视频明星| 日韩中文字幕网址| 亚洲伊人一本大道中文字幕| 欧美激情精品久久久久久变态| 国产精品视频xxxx| 国产精品久久久久久亚洲调教| 成人乱色短篇合集| 日韩中文字幕视频| 91精品免费看| 欧美大片在线免费观看| 97视频在线播放| 成人在线中文字幕| 国产欧美在线播放| 少妇高潮久久久久久潘金莲| 日韩经典中文字幕在线观看| 欧美成人亚洲成人日韩成人| 97超碰国产精品女人人人爽| 欧美最猛黑人xxxx黑人猛叫黄| 中国日韩欧美久久久久久久久| 日本精品性网站在线观看| 清纯唯美亚洲激情| 久久久久国色av免费观看性色| 久久精品在线视频| 国产一区二区三区网站| 欧美成人第一页| 91精品国产91久久久久久不卡| 亚洲精品久久久久久久久久久久| 色播久久人人爽人人爽人人片视av| 激情av一区二区| 成人国产精品久久久久久亚洲| 久久91精品国产| 51午夜精品视频| 日韩电影在线观看永久视频免费网站| 亚洲黄色av女优在线观看| 欧美国产日韩二区| 最新91在线视频| 亚洲最大成人免费视频| 国产主播精品在线| 91精品啪aⅴ在线观看国产| 成人欧美一区二区三区在线| 欧美在线中文字幕| 精品久久久久久中文字幕大豆网| 中文字幕在线日韩| 国产在线拍揄自揄视频不卡99| 伊人久久精品视频| 亚洲视频在线观看网站| 这里只有精品在线观看| 日韩精品免费看| 久久免费高清视频| 亚洲第一福利网站| 国产精品av免费在线观看| 欧美黑人性生活视频| 日韩女优人人人人射在线视频| 国产日韩欧美视频在线| 77777少妇光屁股久久一区| 亚洲影视九九影院在线观看| 久久久久久久久久久网站| 国产国产精品人在线视| 亚洲韩国日本中文字幕| 精品视频在线播放色网色视频| 亚洲欧美一区二区三区情侣bbw| 欧美激情视频网址| 欧美wwwxxxx| 日韩久久免费视频| 日韩成人激情视频| 日韩一区二区欧美| 日韩av网址在线| 精品在线欧美视频| 欧美黑人xxxⅹ高潮交| 久久久久久成人| 久久99精品久久久久久青青91| 国产精品对白刺激| 中文字幕亚洲综合久久筱田步美| 国产在线高清精品| 亚洲国产精品久久久| 亚洲国产精品系列| 国产成人91久久精品|