iOS的服务端api接口怎么写
来源:互联网 发布:北京三力网络 编辑:程序博客网 时间:2024/04/28 10:51
作为一名iOS 码农还是有两年多的时间了,一共换过两家公司,现在的公司主要是做.net相关的产品。在业余时间得到了同事的帮助,了解了下服务端的api接口的相关知识。这里当做一个笔记给那些刚刚接触iOS开发的新朋友了解下。PS:想当初我想了解web service的东西的时候,四处都找不到资料,要么就是soap的东东,太老,反正各种你找不到。
采用.Net平台的实现api的方式有很多,刚来公司时用的是一般处理程序后缀为*.ashx 或者一面程序*.aspx来返回json;然后是MVC的框架返回json,好吧最后终于迎来了Web api。抛开.net这个框架,其实api的实质不外乎就是返回你需要的数据信息(以json格式展示、或者xml格式)。而这些数据信息可以是在服务后台做了一些逻辑处理a,服务端的c#代码处理逻辑(操作实体);b,用sql代码级别直接在筛选数据的时就做过滤。 当拿到这些数据后,.Net能帮我们做的事情就是序列化为json格式的东东了,然后当你请求的时候返回给客户端而已。而要弄清楚,每个环节当然有其书面的名称,建议有兴趣的可以在www.asp.net的相关章节学习。
对于iOS客户端开发人员直接面对的是前面两个框框的内容,至于后面的服务端是怎么返回json的看下面的代码吧。
using BooksApi.DTOs;using System;using System.Collections.Generic;using System.Linq;using System.Linq.Expressions;using System.Net;using System.Net.Http;using System.Text;using System.Web.Http;using System.Web.Script.Serialization;namespace BooksApi.Controllers{ [RoutePrefix("api/students")] public class StudentsController : ApiController { private static readonly Expression<Func<Classmates_T, StudentDto>> AsStudentDto = x => new StudentDto { Name = x.Name, Address = x.Address, Phone = x.Phone }; MobileVersionEntities dbctx = new MobileVersionEntities(); [Route("{id?}")] // GET api/<controller>/5 public IQueryable<StudentDto> Get(string id = null) { // var result = (from u in dbctx.Classmates_T select u).ToList<Classmates_T>(); var res = id != null ? dbctx.Classmates_T.Where(o => o.Name.Contains(id) || o.Phone.Contains(id)). Select(AsStudentDto) : dbctx.Classmates_T.Select(AsStudentDto).AsQueryable(); return res; } // POST api/<controller> public void Post([FromBody]string value) { } }}
那么我访问 http://192.168.20.189:6900/bk/api/students?$select=Name,Address 时候就会返回(StudentDto模型)中的两个字段,而Phone这个字段我这里并没有查
[{"Address":"四川成都高新西","Name":"段叔佑"},{"Address":"深圳","Name":"罗林"}]
的json数据。
[RoutePrefix("api/students")] 为特性路由,当你访问xxxx/api/students就会对应找到该WebApi的Controller,默认会运行Get方法,然后数据库中的表Classmate_T包含的字段太多了,这里我现在代码层进行了一次筛选。建立了一个StudentDto的Model来装Classmate_T对应Model中的部分值。
然后就是操作数据库中得到<span style="font-family: Arial, Helvetica, sans-serif;">Classmates_T,对其中得到你数据进行一次类似策略模式的处理——把Classmate_T对应的实体变成StudentDto实体。</span>
就是这么简单的几句话,即可完成一个webapi。在代码部分做了一些扩展1,根据id 模糊查询 2,web api odata的query扩展。如果不考虑这些扩展,你写web api在后期可能无法满足等你功能变化的需求,但是总的来说.Net web api这个框架让我们更多专注逻辑的东西,而至于怎么序列化的事情我们就没有必要那么关心了。
0 0
- iOS的服务端api接口怎么写
- 服务端接口交互API设计
- api服务端接口安全性解析
- api服务端接口安全性解析
- 用dubbo框架写的简单的接口作为服务端
- 求助:用WebService写一个服务端的接口
- JSONP接口怎么写?
- yii2 RESTful 接口 api -6: 写一个自己的api
- 服务端 API 接口设计最佳实践
- 一些ios接口api
- Android上传图片到服务器的代码怎么写(Android客户端代码和服务端代码)
- PHP写API接口注意事项
- 使用SOCKET API写的客户端与服务端测试程序(C语言)
- 不负责任的服务端接口开发
- 当app出现bug时,怎么判断是客户端的问题,还是接口的问题,或者是服务端的问题?
- java中怎么调用api数据接口
- yii2 RESTful 接口 api -2 : 写自己的接口方法search
- iOS:web api 接口大全
- [Unity-18] Unity摄像机Clear Flags和Culling Mask属性详解
- MarginLayoutParams
- 利用本地包含漏洞执行任意代码
- POJ1100---Dreisam Equations
- Chrome Internal: 前言
- iOS的服务端api接口怎么写
- effective c++ 条款01 整理
- 高效的nextPrime算法(参考l链接中的高效的素数判断)
- Servlet&JSP随堂学习笔记
- Xcode 6制作动态及静态Framework
- ios推送
- NYOJ 975 关于521
- Twisted 库 TCP 服务器 心跳包demo
- 1923:排序