# ApiGateWay **Repository Path**: bgcls/api-gate-way ## Basic Information - **Project Name**: ApiGateWay - **Description**: JAVA写的API网关,使静态网页中的js跨域调用的时候不受跨域的限制,支持GET、POST网页数据,同时也支持持久化的变量保存。 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2021-12-25 - **Last Updated**: 2022-03-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ApiGateWay ## 介绍 JAVA写的API网关,使静态网页中的js跨域调用的时候不受跨域的限制,支持GET、POST网页数据,同时也支持持久化的变量保存。 ## 源码说明 特色 1. js 文本变量持久化保存。 2. 支持跨域GET、POST请求。 ## js 函数说明 需要html引用jquery.js和main.js,main.js依赖于jquery.js。 ### 实例化请求库 调用`$.moon()`将会实例化一个请求库实例。 例如: `let obj=$.moon()` ### header函数 添加一个hader请求头【支持连调】 原型: obj.header([string],[string]); 实例: ```javascript obj.header("Content-Type","application/json") ``` 添加一个或者多个header请求头【支持连调】 原型:obj.header([object]); 实例: ```javascript obj.header({"Content-Type":"application/json","Version":1}) ``` 原型:obj.header([string]); 实例: ```javascript //多条header请使用\n隔开。 obj.header("Content-Type: application/json\nVersion: 1") ``` 获取现有的header头:(将会返回现有header对象) 原型:obj.header(void); 实例 ```javascript obj.header() ``` ### cookie()函数 添加一条cookie【支持连调】 原型:obj.cookie([string],[string]); 实例: ```javascript obj.cookie("test","123456") ``` 添加多条cookie【支持连调】 原型:obj.cookie([object]) 实例: ```javascript obj.cookie({"test":"123456","test2":"123456789"}) ``` 原型:obj.cookie([string]) 实例: ```javascript obj.cookie("test=1; b=2; ") ``` 获取当前的请求库实例的cookie 原型:obj.cookie(void) 实例 ```javascript obj.cookie(); ``` ### api()函数 设置API服务器 原型obj.api([string]); 实例: ```javascript obj.api("http://192.168.1.1:8001") ``` 获取当前设定的API服务器配置 原型obj.api(void); 实例: ```javascript obj.api() ``` ### getRawCookie()函数 获取当前请求库对象的cookie 字符串 getRawCookie(void) ```javascript obj.getRawCookie() ``` ### ua()函数 设置当前请求库对象的User-Agent 原型:obj.ua([string])【支持连调】 实例: ```javascript obj.ua("Microsoft Edge "); ``` 获取当前请求库对象的User-Agent 原型:obj.ua(void) 实例: ```javascript obj.ua(); ``` ### refer()函数 设置请求库以后的请求头refer字段 原型:obj.refer([string])【支持连调】 实例: ```javascript obj.refer("http://www.baidu.com"); ``` 获取当前设置的refer字段 ```javascript obj.refer(); ``` ### timeout()函数 设置请求超时的时间(默认是5000)单位毫秒 原型:obj.timeout([int]);【支持连调】 ```javascript obj.timeout(10_000) ``` 获取当前请求超时的时间 原型:obj.timeout(void); 实例: ```javascript obj.timeout(); ``` ### redirect()函数 设置允许/拒绝自动302跳转,默认为true(允许自动跳转) 原型:obj.redirect([boolean])【支持连调】 实例: ```javascript obj.redirect(false); ``` 获取是否允许302自动跳转 原型:obj.redirect(void) 实例: ```javascript obj.redirect(); ``` ### get()函数 只发起请求但不处理信息 原型:obj.get([string]) 实例: ```javascript obj.get("https://www.baidu.com"); ``` 发起请求并且处理结果 原型:obj.get([string],[http_callback]) [http_callback]请参考 http_callback回调函数结构说明 ```javascript obj.get("http://www.baidu.com",function(data) { console.log(data); }); ``` ### post()函数 只发起请求但不处理信息 原型:obj.post([string],[string]) 实例: ```javascript //建议配合header使用,header将会指定提交的数据结构类型是什么 obj.header("Content-type: application/x-www-form-urlencoded") .post("https://www.baidu.com","user=123&passwd=456"); ``` 发起请求并且处理结果 原型:obj.get([string],[string],[http_callback]) [http_callback]请参考 http_callback回调函数结构说明 ```javascript //建议配合header使用,header将会指定提交的数据结构类型是什么 obj.header("Content-type: application/x-www-form-urlencoded") .post("https://www.baidu.com","user=123&passwd=456",function(data) { console.log(data); }); ``` ### http_callback回调函数结构说明 基础结构:只处理基础的信息,如果是json将会被自动转换成对象。 原型 function(data){} ```javascript function (data) { } ``` 拓展结构: function (data,rawdata,obj) {} data同上,rawdata是一个对象,包含有请求结果的协议头,网页内容主体。obj是当前请求库对象,避免出现多请求库对象的时候,无法找到相应的cookie。 ```javascript function (data,rawdata,obj) { } ``` ## db函数说明 持久化变量的一个对象。 ### 实例化持久化储存对象 $.db([string]) 此处是传入配置节点的名称,保证与其他网页服务一样的key也不会冲突。 实例: ```javascript let db=$.db("test_config"); ``` ### read()函数 读取一个无默认值的配置项 原型:db.read([string]); 实例: ```javascript db.read("test") ``` 读取一个带默认值的配置项(当找不到该数据时,将返回第二个参数,也就是默认值) 原型:db.read([string],[string]) 实例: ```javascript db.read("test01","test"); ``` 读取多个配置项,无默认值,成功将会返回对象 原型:db.read([array]); ```javascript db.read(["test","test01"]); //如果两个配置项在数据库里都存在,那么将会返回对象{"test":[值1],"test01":[值2]} //如果2个配置项都不存在,将会返回空对象{} ``` 读取多个配置项,带默认值选项 原型: db.read([array],[object]); ```javascript db.read(["test","test01"],{"test":"1","test01":"2"}); //如果两个配置项在数据库里都存在,那么将会返回对象{"test":[值1],"test01":[值2]} //如果2个配置项都不存在,将会返回空对象{"test":"1","test01":"2"} ``` ### write()函数 保存单个变量值【支持连调】 原型:db.write([string],[string]); 第一个参数是变量名,第二个参数是变量值 实例: ```javascript db.write("test","33"); ``` 保存多个变量值 原型:db.write([object]) 实例: ```javascript db.write({"test":"33","test01":"44"}) ``` ### unset()函数 取消单个持久化变量【支持连调】 原型:db.unset([string]) ```javascript db.unset("test"); ``` 取消多个持久化变量【支持连调】 ```javascript db.unset(["test","test01"]); ``` ### clear()函数 删除该实例配置节点的名称,并且将会清空该节点下的所有配置节点数据。 原型:db.clear(void)【支持连调】 实例: ```javascript db.clear(); ```