api接口

JDBC API

匿名 (未验证) 提交于 2019-12-02 23:55:01
JDBC API JDBC API 是一系列的接口,它使得应用程序能够进行数据库联接,执行SQL语句,并且得到返回结果。 Driver 接口 Java.sql.Driver 接口是所有 JDBC 驱动程序需要实现的接口 。这个接口是提供给数据库厂商使用的,不同数据库厂商提供不同的实现 在程序中不需要直接去访问实现了 Driver 接口的类,而是由 驱动程序管理器类(java.sql.DriverManager) 去调用这些Driver实现 加载与注册 JDBC 驱动 加载 JDBC 驱动需调用 Class 类的静态方法 forName(),向其传递要加载的 JDBC 驱动的类名 DriverManager 类是驱动程序管理器类,负责管理驱动程序 通常不用显式调用 DriverManager 类的 registerDriver() 方法来注册驱动程序类的实例,因为 Driver 接口的驱动程序类都包含了静态代码块,在这个静态代码块中,会调用 DriverManager.registerDriver() 方法来注册自身的一个实例 建立连接 可以调用 DriverManager 类的 getConnection() 方法建立到数据库的连接 JDBC URL 用于标识一个被注册的驱动程序,驱动程序管理器通过这个 URL 选择正确的驱动程序,从而建立到数据库的连接。 JDBC

golang微服务框架go-micro 入门笔记2.1 micro工具之micro api

匿名 (未验证) 提交于 2019-12-02 23:55:01
micro api micro 功能非常强大,本文将详细阐述micro api 命令行的功能 重要的事情说3次 本文全部代码https://idea.techidea8.com/open/idea.shtml?id=6 本文全部代码https://idea.techidea8.com/open/idea.shtml?id=6 本文全部代码https://idea.techidea8.com/open/idea.shtml?id=6 主要作用是为微服务提供http网关支持。假如后端服务名称为 go.micro.srv.hello ,提供 call 方法,则我们可用通过http协议来调用微服务。 curl http://127.0.0.0:8080/hello/call?name=123 micro api 指令全部参数如下 $micro api -h NAME: micro api - Run the api gateway USAGE: micro api [command options] [arguments...] OPTIONS: --address value Set the api address e.g 0.0.0.0:8080 [%MICRO_API_ADDRESS%] --handler value Specify the request handler to

中通快递物流单号查询API接口免费对接案例

匿名 (未验证) 提交于 2019-12-02 23:52:01
快递查询API接口是使用的物流单号即可实现查询物流信息。主要应用在电商商城、ERP系统商、WMS系统商、快递柜、银行等企业。多家快递物流公司接口统一接入,建议对接接口提供商,一次性可以接入多家快递,在后期的技术维护也会省下很多工作。 a、查询接口支持按照运单号查询(单个查询,并发不超过10个/S)。 b、指定的物流运单号选择相应的快递公司编码,格式不对或则编码错误都会返失败的信息。如中通快递物流单号应选择快递公司编码(ZTO) c、返回的物流跟踪信息按照发生的时间升序排列。 d、接口指令1002。 e、请求地址:快递鸟 系统级输入参数 类型 应用级输入参数 必须要求 说明 RequestData String OrderCode O 订单编号 请求内容,JSON格式,和DataType一致 ShipperCode R 快递公司编码 LogisticCode R 物流单号 EBusinessID String R 电商ID RequestType String R 请求指令类型:1002 DataSign String R 数据内容签名 DataType String R 请求、返回数据类型: 2-json; 参数名称 类型 必须要求 说明 EBusinessID String R 电商用户ID OrderCode String O 订单编号 ShipperCode String R

axios的基本使用方法

匿名 (未验证) 提交于 2019-12-02 23:52:01
在引入vue文件之后引入axios.js <script src="https://unpkg.com/axios/dist/axios.min.js"></script> 创建newVue 填写url接口 列表获取 get请求 http://www.liulongbin.top:3005/api/getprodlist 删除商品 get请求 116276代表商品id http://www.liulongbin.top:3005/api/delproduct/116276 添加商品 post请求 请求参数:name(品牌名称) http://www.liulongbin.top:3005/api/addproduct 搜索商品 get请求 请求参数:searchvalue(搜索内容) http://www.liulongbin.top:3005/api/getprodlist 填写newVue中的mounted() <script> new Vue({ el: "#app", data:{}, mounted() { var url = "http://www.liulongbin.top:3005/api/getprodlist"; axios.get(url).then(function (res) { console.log(res.data);/

几个IP获取地理位置的API接口

匿名 (未验证) 提交于 2019-12-02 23:49:02
Ŀ¼ 请求URL: http://ip.360.cn/IPShare/info 请求方式: GET 返回示例 { "greetheader": "晚上好,", "nickname": "", "ip": "120.25.163.70", "location": "广东深圳\t阿里云/电信/联通/移动/铁通/教育网", "loc_client": "" } 请求URL: http://ip.360.cn/IPQuery/ipquery?ip=120.25.163.70 请求方式: POST 返回示例 { "errno": 0, "errmsg": "", "data": "广东深圳\t阿里云/电信/联通/移动/铁通/教育网" } 请求URL: http://pv.sohu.com/cityjson 请求方式: GET 返回示例 var returnCitySN = {"cip": "120.25.163.70", "cid": "310000", "cname": "CHINA URL: http://whois.pconline.com.cn/#tabs-3 http://www.hao7188.com/ 此网站获取到的数据比较详细,推荐。 http://www.ip138.com/ 老牌的IP查询网站 http://www.ip.cn/ 比较知名的IP查询网站 http:/

API开放平台基于accessToken实现

匿名 (未验证) 提交于 2019-12-02 23:48:02
A企业和B企业要进行合作时,A要开放api接口给B调用,这时候A可以采用基于accessToken的方式实现开放api接口 数据库表设计 B调用方式 B企业调用接口前先获取accessToken http://localhost:8080/auth/getAccessToken?appId=123456&appSecret=a1b2c3 然后调动真正的业务方法时携带accessToken http://localhost:8080/openApi/getUser?accessToken=ac18deb132684f6c8cb2c01bd85f86aa A企业具体实现 A企业设置accessToken过期时间为2小时,并且启动一个job定时刷新 A企业在拦截器里拦截所有的开发api接口,验证accessToken是否存在,是否过期,如果accessTokne存在并且没有过期就可以继续执行业务方法 @Component public class AccessTokenInterceptor extends BaseApiService implements HandlerInterceptor { @Autowired private BaseRedisService baseRedisService; public boolean preHandle

Flink编程模型

匿名 (未验证) 提交于 2019-12-02 23:42:01
数据集类型 现实世界中,所有的数据都是以流式的形态产生的,不管是哪里产生的数据,在产生的过程中都是一条条地生成,最后经过了存储和转换处理,形成了各种类型的数据集。如下图所示,根据现实的数据产生方式和数据产生是否含有边界(具有起始点和终止点)角度,将数据分为两种类型的数据集,一种是有界数据集,另外一种是无界数据集。 有界数据集 有界数据集具有时间边界,在处理过程中数据一定会在某个时间范围内起始和结束,有可能是一分钟,也有可能是一天内的交易数据。对有界数据集的数据处理方式被称为批计算(Batch Processing),例如将数据从RDBMS或文件系统等系统中读取出来,然后在分布式系统内处理,最后再将处理结果写入存储介质中,整个过程就被称为批处理过程。而针对批数据处理,目前业界比较流行的分布式批处理框架有Apache Hadoop和Apache Spark等。 无界数据集 对于无界数据集,数据从开始生成就一直持续不断地产生新的数据,因此数据是没有边界的,例如服务器的日志、传感器信号数据等。和批量数据处理方式对应,对无界数据集的数据处理方式被称为流式数据处理,简称为流处理(Streaming Process)。可以看出,流式数据处理过程实现复杂度会更高,因为需要考虑处理过程中数据的顺序错乱,以及系统容错等方面的问题,因此流处理需要借助专门的流数据处理技术。目前业界的Apache

API 接口防刷

匿名 (未验证) 提交于 2019-12-02 23:32:01
API 接口防刷 顾名思义,想让某个接口某个人在某段时间内只能请求N次。 在项目中比较常见的问题也有,那就是连点按钮导致请求多次,以前在web端有表单重复提交,可以通过token 来解决。 除了上面的方法外,前后端配合的方法。现在全部由后端来控制。 原理 在你请求的时候,服务器通过redis 记录下你请求的次数,如果次数超过限制就不给访问。 在redis 保存的key 是有时效性的,过期就会删除。 代码实现: 为了让它看起来逼格高一点,所以以自定义注解的方式实现 @RequestLimit 注解 import java.lang.annotation.*; /** * 请求限制的自定义注解 * * @Target 注解可修饰的对象范围,ElementType.METHOD 作用于方法,ElementType.TYPE 作用于类 * (ElementType)取值有: *     1.CONSTRUCTOR:用于描述构造器 *     2.FIELD:用于描述域 *     3.LOCAL_VARIABLE:用于描述局部变量 *     4.METHOD:用于描述方法 *     5.PACKAGE:用于描述包 *     6.PARAMETER:用于描述参数 *     7.TYPE:用于描述类、接口(包括注解类型) 或enum声明 *

API设计之道

99封情书 提交于 2019-12-02 23:09:59
接口安全要求: 1.防伪装攻击(案例:在公共网络环境中,第三方 有意或恶意 的调用我们的接口) 2.防篡改攻击(案例:在公共网络环境中,请求头/查询字符串/内容 在传输过程被修改) 3.防重放攻击(案例:在公共网络环境中,请求被截获,稍后被重放或多次重放) 4.防数据信息泄漏(案例:截获用户登录请求,截获到账号、密码等) 设计原则: 1.轻量级 2.适合于异构系统(跨操作系统、多语言简易实现) 3.易于开发 4.易于测试 5.易于部署 6.满足接口安全需求(满足接口安全1,2,3),无过度设计。 其它:接口安全要求防数据信息泄漏部分,主要针对目前用户中心的登录接口 设计原则是:使用HTTPS安全协议 或 传输内容使用非对称加密,目前我们采用的后者。 适用范围: 1.所有写操作接口(增、删、改 操作) 2.非公开的读接口(如:涉密/敏感/隐私 等信息) 接口参数签名 实现思路参考: 必要的输入参数: 签名算法过程: 1.对除签名外的所有请求参数按key做的升序排列,value无需编码。(假设当前时间的时间戳是12345678) 例如:有c=3,b=2,a=1 三个参,另加上时间戳后, 按key排序后为:a=1,b=2,c=3,_timestamp=12345678。 2 把参数名和参数值连接成字符串,得到拼装字符:a1b2c3_timestamp12345678 3

django restframework 初识

匿名 (未验证) 提交于 2019-12-02 22:56:40
从后台开发的角度来说,不借助restframework框架一样可以用django来写接口。但是有了restframework之后,我们用restframework会更加方便,因为这个框架帮我们做了很多事,使用这个框架来开发接口会更加便捷。restframework里面大致实现了以下功能: 权限 认证 访问评率限制 序列化 路由 视图 分页 渲染器 解析器 版本 首先django不存在CBV和FBV哪种方式更好的说法,它们的本质都是一样的,写在路由里都是对应一个函数,CBV的as_view其实就是返回一个view函数。 APIView的as_view() 方法返回一个不需要csrf验证的view函数,这个view函数调用的其实就是django原生View类中的view函数,原生view函数调用的dispatch,而dispatch被APIview重写了dispatch方法 @classmethod def as_view(cls, **initkwargs): """ Store the original class on the view function. This allows us to discover information about the view when we do URL reverse lookups. Used for breadcrumb