接口设计

简介: 接口设计

什么是接口(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)


目录
相关文章
|
5月前
软件复杂度问题之什么是高内聚低耦合设计,实现一个高内聚低耦合的接口该如何解决
软件复杂度问题之什么是高内聚低耦合设计,实现一个高内聚低耦合的接口该如何解决
|
6月前
|
Java 数据处理
接口设计规范
接口设计规范
248 2
|
5月前
|
测试技术 API
接口设计原则与最佳实践指南
接口设计原则与最佳实践指南
|
7月前
|
安全 前端开发 NoSQL
如果让你设计一个接口,你会考虑哪些问题?
接口设计需关注参数校验、扩展性、幂等性、日志、线程池隔离、异常重试、异步处理、查询优化、限流、安全性、锁粒度和避免长事务。入参与返回值校验确保数据正确性;考虑接口扩展性以适应不同业务需求;幂等设计防止重复操作;关键接口打印日志辅助问题排查;核心接口使用线程池隔离确保稳定性;异常处理中可采用重试机制,注意超时控制;适合异步的场景如用户注册后的通知;并行查询提升性能;限流保护接口,防止过载;配置黑白名单保障安全;适当控制锁粒度提高并发性能;避免长事务影响系统响应。
|
7月前
模块功能高内聚低耦合
模块功能高内聚低耦合
63 1
|
7月前
|
XML JSON API
前后端分离的接口设计规范
前后端分离的接口设计规范
软件设计原则-接口隔离原则讲解以及代码示例
接口隔离原则(Interface Segregation Principle,ISP)是面向对象设计中的一个原则,提倡使用多个专门的接口,而不使用单一的大接口。它最早由Robert C. Martin在其《敏捷软件开发:原则、模式与实践》一书中提出。 接口隔离原则的核心思想是:客户端不应该依赖于它不需要的接口。也就是说,一个类或模块不应该强迫它的用户去依赖无用的接口。相反,应该将大接口拆分成多个小接口,符合客户端的需求,使客户端只依赖于它真正需要的接口。 接口隔离原则的目标是降低类或模块之间的耦合度,提高代码的可维护性、可扩展性和可测试性。通过使用多个专门的接口,我们可以避免类或模块之间出现不
134 0
|
测试技术 数据库
软件设计原则-依赖倒置原则讲解以及代码示例
依赖倒置原则(Dependency Inversion Principle,DIP)是面向对象设计中的一个重要原则,由Robert C. Martin提出。 依赖倒置原则的核心思想是:高层模块不应该依赖于低层模块,二者都应该依赖于抽象。抽象不应该依赖于具体实现细节,而具体实现细节应该依赖于抽象。这意味着我们在进行系统设计时,应该尽量使用抽象类或接口来定义对象之间的依赖关系,而不是直接依赖于具体的实现类
454 0
|
存储 JSON NoSQL
|
SQL 负载均衡 Java
怎么设计一个高质量的接口API设计
什么是幂等性?对于同一笔业务交易,不管调用多少次,只会成功处理一次。二、幂等性设计我们转账业务为例,来说明一下这个问题,转账接口一定要做到幂等性,否则会出现重复转账的问题。调用转账接口从A中转100元资金给B,参数中会携带业务流水号biz_no和源账户A,目的账户B,和转账金额100,业务流水号biz_no是唯一的。转账接口实现有以下实现方式。