1.登陆and注册 api.net 接口:
public void ProcessRequest(HttpContext context)
{
context.Response.AddHeader("Access-Control-Allow-Origin", "*");//后端解决跨域问题
context.Response.ContentType = "application/json";
string type = context.Request["type"].ToString();
if (type == "login")
{
login(context);
}
else if(type == "registered")
{
registered(context);
}
}
/// <summary>
/// 登陆
/// </summary>
/// <param name="context"></param>
private void login(HttpContext context) {
UserDal userDal = new UserDal();
string username = context.Request["username"].ToString();
string pwd = context.Request["pwd"].ToString();
if (userDal.GetLogon(username, pwd)>0)
{
UserInfoBll uib = new UserInfoBll();
UserInfoModel moder = new UserInfoModel(); ;
moder.username = username;
moder.pwd = pwd;
List<UserInfoModel> list = uib.getUserLoginList(moder);
JavaScriptSerializer jss = new JavaScriptSerializer();
string str = jss.Serialize(list);
str = "{\"code\":\"200\",\"state \":\"OK\",\"data\":" + str + " }";
//UserInfoModel obj = jss.Deserialize<UserInfoModel>(str);
context.Response.Write(str);
}
else
{
context.Response.Write("404");
}
}
/// <summary>
/// 注册
/// </summary>
/// <param name="context"></param>
private void registered(HttpContext context)
{
UserDal userDal = new UserDal();
//int id = int.Parse(context.Request["id"]);
string username = context.Request["username"].ToString();
string pwd = context.Request["pwd"].ToString();
string phone = context.Request["phone"].ToString();
if (userDal.GetLogin(username, pwd, phone) >0)
{
UserInfoBll uib = new UserInfoBll();
UserInfoModel moder = new UserInfoModel();
//moder.id = id;
moder.username = username;
moder.pwd = pwd;
moder.phone = phone;
List<UserInfoModel> list = uib.getUserLoginList(moder);
JavaScriptSerializer jss = new JavaScriptSerializer();
string str = jss.Serialize(list);
str = "{\"code\":\"200\",\"state \":\"OK\",\"data\":" + str + " }";
context.Response.Write(str);
}
else
{
context.Response.Write("404");
}
}
/// <summary>
/// 返回数据对象json格式
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="context"></param>
/// <returns></returns>
public static T getparameter<T>(HttpContext context)
{
string jstr = string.Empty;
using (StreamReader srd = new StreamReader(context.Request.InputStream))
{
jstr = srd.ReadToEnd();
}
JavaScriptSerializer jss = new JavaScriptSerializer();
T obj = jss.Deserialize<T>(jstr);
return obj;
}
public bool IsReusable
{
get
{
return false;
}
}
}
一、API接口概述
API,全称应用程序接口,是一些预先定义的函数,目的是提供应用程序与开发人员以访问一组例程的能力,我们可以在不暴露各内部例程的情况下,使用这些例程。API是构建在操作系统或应用程序之间的接口,它充当一个桥梁或纽带,使得不同的应用程序或系统之间可以相互交流和交互。
二、API接口的种类
根据API所依赖的技术和功能,可以将API分为以下几类:
- RESTful API:REST,即Representational State Transfer,指的是一种软件架构风格和设计原则,基于HTTP协议。RESTful API就是符合这种风格的API,它使用HTTP方法如GET、POST、PUT、DELETE等来实现操作。
- SOAP API:SOAP,即Simple Object Access Protocol,是一种基于XML的协议,用于在网络中传输结构化信息。SOAP API使用XML格式来传输数据,并使用SOAP协议来进行消息交换。
- GraphQL API:GraphQL是一种用于API的查询语言,它提供了一种更有效的方法来检索和操作数据,比传统的RESTful API更加高效和灵活。
- WebSocket API:WebSocket是一种网络通信协议,可以在单个TCP连接上进行全双工通信。WebSocket API提供了一种实时通信的方式,使得服务器和客户端可以实时地传递和接收数据。
三、API接口的设计与实现
设计和实现一个API接口需要考虑以下几个方面:
- 明确API的目标和功能:在设计API之前,需要明确API的目标和功能,以及API的主要用户和应用场景。
- 定义API的接口参数:根据API的功能和应用场景,需要定义API的接口参数,包括输入参数和输出参数。
- 选择合适的API设计风格:根据应用场景和需求,选择适合的API设计风格,比如RESTful API、SOAP API等。
- 实现API的服务器端:实现API的服务器端是实现API接口的核心。在实现服务器端时,需要考虑如何处理各种请求、如何保护API接口的安全性和稳定性、如何优化性能等。
- 实现API的客户端:实现API的客户端是为了方便开发者使用API接口。在实现客户端时,需要考虑如何简化代码、如何提高易用性、如何处理异常等。
- 进行API的测试和调试:在完成API的服务器端和客户端实现后,需要进行测试和调试,以确保API接口的功能正常、性能稳定、安全可靠。
四、API接口的应用实例
下面以RESTful API为例,展示一个简单的API接口的实现过程:
- 定义API接口参数:假设我们要实现一个获取用户信息的API接口,输入参数为用户ID,输出参数为用户的姓名、性别、年龄等信息。
- 选择合适的API设计风格:由于该API主要服务于客户端应用,因此可以选择RESTful API风格。
- 实现API的客户端:在客户端,我们可以使用各种编程语言和框架来调用API。以下是一个简单的JavaScript代码示例:
-
javascript复制代码 fetch('/user/1') .then(response => response.json()) .then(data => { console.log(data); });
- 实现API的服务器端:在服务器端,我们需要定义路由和控制器来处理请求。以下是一个简单的Node.js代码示例:
arduino复制代码
const express = require('express');
const app = express();
// 定义路由
app.get('/user/:id', (req, res) => {
const userId = req.params.id;
const userInfo = {
name: 'John',
gender: 'male',
age: 25,
};
res.json(userInfo);
});
// 启动服务器
app.listen(3000, () => {
console.log('Server started on port 3000');
});