接口设计

简介: 接口设计

什么是接口(API):不同功能层之间的通信规则称为接口

参数


返回值


实现登录和注册:

let http = require('http');
let url = require('url');
let querystring = require('querystring');
let fs = require('fs');
let user = {
    admin: 123456
}
http.createServer((req, res) => {
    let path, get, post
    if (req.method == 'GET') {
        let { pathname, query } = url.parse(req.url, true);
        path = pathname;
        get = query;
        complete();
    } else if (req.method == 'POST') { 
        let arr = [];
        path = req.url;
        req.on('data', buffer => {
            arr.push(buffer)
        });
        req.on("end", () => {
            post = querystring.parse(Buffer.concat(arr).toString());
            complete();
        })
    }
    function complete() {
        if (path == '/login') {
            res.writeHead(200, {
                'Content-Type': 'text/plain;charset=utf-8'
            })
            let { username, password } = get;
            if (!user[username]) {
                res.end(JSON.stringify({
                    err: 1,
                    msg: '用户名不存在'
                }))
            } else if (user[username] != password) {
                res.writeHead(200, {
                    'Content-Type': 'text/plain;charset=utf-8'
                })
                res.end(JSON.stringify({
                    err: 1,
                    msg: '密码不正确'
                }))
            } else {
                res.end(JSON.stringify({
                    err: 0,
                    msg: '登陆成功'
                }))
            }
        } else if (path == '/reg') {
            res.writeHead(200, {
                'Content-Type': 'text/plain;charset=utf-8'
            });
            let { username, password } = post;
            if (user[username]) {
                res.end(JSON.stringify({
                    err: 1,
                    msg: '用户已经存在'
                }))
            } else {
                user[username] = password;
                res.end(JSON.stringify({
                    err: 0,
                    msg: '注册成功'
                }))
            }
        } else {
            fs.readFile(`www${path}`,(err,data)=> {
                if(err){
                    res.end('404');
                }else{
                    res.end(data);
                }
            })
        }
    }
}).listen(8080)


目录
相关文章
|
6月前
软件复杂度问题之什么是高内聚低耦合设计,实现一个高内聚低耦合的接口该如何解决
软件复杂度问题之什么是高内聚低耦合设计,实现一个高内聚低耦合的接口该如何解决
|
8月前
|
JSON 安全 API
11条军规,让你的接口设计无可挑剔
后端工程师需重视接口设计,提供清晰规范的接口文档以节省合作时间,避免纠纷。关键点包括:1) 接口名称应直观明了;2) 接口路径规整,能反映接口功能;3) 使用恰当的请求方式(GET, POST, PUT, PATCH, DELETE);4) 提供详细接口说明和示例;5) 实施接口版本管理,更新文档以适应变更;6) 明确请求头信息;7) 关注接口安全,进行参数加密和授权;8) 编写测试案例和错误码定义,方便调用者理解和测试。
306 0
11条军规,让你的接口设计无可挑剔
|
7月前
|
Java 数据处理
接口设计规范
接口设计规范
286 2
|
6月前
|
测试技术 API
接口设计原则与最佳实践指南
接口设计原则与最佳实践指南
|
8月前
|
SQL JSON API
接口设计的18条军规
本文介绍了接口设计的18条最佳实践,包括签名防止数据篡改、加密敏感信息、IP白名单增强安全性、限流保护服务、统一返回值结构、异常统一处理、请求日志记录、幂等性设计、限制请求记录条数、压力测试、异步处理、数据脱敏、完整接口文档、合理使用请求方式、利用请求头传递参数、设计批量操作接口和职责单一原则。这些规则旨在确保API接口的安全、稳定、高效和易于维护。
113 3
|
8月前
|
存储 缓存 安全
关于类和接口设计的11个好习惯
关于类和接口设计的11个好习惯
|
8月前
|
设计模式 数据可视化 测试技术
使业务逻辑更加清晰,便于理解和维护
使业务逻辑更加清晰,便于理解和维护
102 2
|
8月前
|
XML JSON API
前后端分离的接口设计规范
前后端分离的接口设计规范
|
存储 JSON NoSQL
|
SQL 负载均衡 Java
怎么设计一个高质量的接口API设计
什么是幂等性?对于同一笔业务交易,不管调用多少次,只会成功处理一次。二、幂等性设计我们转账业务为例,来说明一下这个问题,转账接口一定要做到幂等性,否则会出现重复转账的问题。调用转账接口从A中转100元资金给B,参数中会携带业务流水号biz_no和源账户A,目的账户B,和转账金额100,业务流水号biz_no是唯一的。转账接口实现有以下实现方式。