网站api接口制作(如何制作api接口)

网友投稿 270 2022-12-30

本篇文章给大家谈谈网站api接口制作,以及如何制作api接口对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 今天给各位分享网站api接口制作的知识,其中也会对如何制作api接口进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

怎么写api接口

一些刚开始写接口文档的服务端同学,很容易按着代码的思路去编写接口文档,这让客户端同学或者是服务对接方技术人员经常吐槽,看不懂接口文档。这篇文章提供一个常规接口文档的编写方法,给大家参考。


推荐使用的是docway 写接口文档,方便保存和共享,支持导出PDF MARKDOWN,支持团队项目管理。

一、请求参数

1. 请求方法

GET

用于获取数据

POST

用于更新数据,可与PUT互换,语义上PUT支持幂等

PUT

用于新增数据,可与POST互换,语义上PUT支持幂等

DELETE

用于删除数据

其他

其他的请求方法在一般的接口中很少使用。如:PATCH HEAD OPTIONS

2. URL

url表示了接口的请求路径。路径中可以包含参数,称为地址参数,如**/user/{id}**,其中id作为一个参数。

3. HTTP Header

HTTP Header用于此次请求的基础信息,在接口文档中以K-V方式展示,其中Content-Type则是一个非常必要的header,它描述的请求体的数据类型。

常用的content-type:

application/x-www-form-urlencoded

请求参数使用“”符号连接。

application/json

内容为json格式

application/xml

内容为xml格式

multipart/form-data

内容为多个数据组成,有分隔符隔开

4. HTTP Body

描述http body,依赖于body中具体的数据类型。如果body中的数据是对象类型。则需要描述对象中字段的名称、类型、长度、不能为空、默认值、说明。以表格的方式来表达最好。

示例:

二、响应参数

1. 响应 HTTP Body

响应body同请求body一样,需要描述请清除数据的类型。

另外,如果服务会根据不同的http status code 返回不同的数据结构, 也需要针对不同的http status code对内容进行描述。

三、接口说明

说明接口的应用场景,特别的注意点,比如,接口是否幂等、处理是同步方式还是异步方式等。

四、示例

上个示例(重点都用红笔圈出来,记牢了):

五、接口工具

推荐使用的是http://docway.net(以前叫小幺鸡) 写接口文档,方便保存和共享,支持导出PDF MARKDOWN,支持团队项目管理。

API接口安全设计方案(已实现)

网络安全方案,主要从数据加密与api接口安全两个方面考虑,数据加密https已经加密了,就不再次加密了;主要从api安全方面考虑。

在代码层面,对接口进行安全设计
一、使用token进行用户身份认证
二、使用sign防止传入参数被篡改
三、用时间戳防止暴力请求

用户身份认证的流程图如下:

具体说明如下:

1、 用户登录时,客户端请求接口,传入用户名和密文的密码
2、 后台服务对用户身份进行验证。若验证失败,则返回错误结果;若验证通过,则生成一个随机不重复的token,并将其存储在redis中,设置一个过期时间。
其中,redis的key为token,value为验证通过后获得的用户信息
3、 用户身份校验通过后,后台服务将生成的token返回客户端。
客户端请求后续其他接口时,需要带上这个token。后台服务会统一拦截接口请求,进行token有效性校验,并从中获取用户信息,供后续业务逻辑使用

为了防止中间人攻击(客户端发来的请求被第三方拦截篡改),引入参数的签名机制。
具体步骤如下:

1、客户端和服务端约定一个加密算法(或MD5摘要也可), 客户端发起请求时,将所有的非空参数按升序拼在一起,通过加密算法形成一个sign,将其放在请求头中传递给后端服务。
2、后端服务统一拦截接口请求,用接收到的非可空参数根据约定好的规则进行加密,和传入的sign值进行比较。若一致则予以放行,不一致则拒绝请求。

由于中间人不知道加密方法,也就不能伪造一个有效的sign。从而防止了中间人对请求参数的篡改。

sign机制可以防止参数被篡改,但无法防dos攻击(第三方使用正确的参数,不停请求服务器,使之无法正常提供服务)。因此,还需要引入时间戳机制。
具体的操作为:客户端在形成sign值时,除了使用所有参数和token外,再加一个发起请求时的时间戳。即

sign值来源 = 所有非空参数升序排序+token+timestamp

而后端则需要根据当前时间和sign值的时间戳进行比较,差值超过一段时间则不予放行。
若要求不高,则客户端和服务端可以仅仅使用精确到秒或分钟的时间戳,据此形成sign值来校验有效性。这样可以使一秒或一分钟内的请求是有效的。
若要求较高,则还需要约定一个解密算法,使后端服务可以从sign值中解析出发起请求的时间戳。
总结后的流程图如下:

这里还是隐藏下了。

规则:sha1(keyvalkeyval+token+timestamp+id)

例如:sha1(address33bussinessType22city111companyNamest232ringtokentimestampid)

这里新增一个id值,与token对应,传输过程中不使用,只用于加密,保证数据即使被截获,因为请求中没有id的传输,更加安全。

token身份认证;

timestamp方式防止dos攻击,防止重放,简单说就是一次接口调用,只能用一定时间,比如比对时间,60s内该次调用有效,60秒后失效;

sign签名,通过参数+token+timestamp+id固定位加密,保证参数不会被修改,调用有效;

怎么为自己的网站编写api接口

80%的都用webservice 新浪微博API(java版) ============================ 修改事项: 1、接口返回结果采用json对象方式封装 2、修改WeiboResponse中空字符串("")调用判断的bug 3、修改了JSONObject中返回空对象的问题 4、增加了直接文件上传接口直接 常用接口实例: (使用前先修改 Weibo.java 中 public static final String CONSUMER_KEY = ""; public static final String CONSUMER_SECRET = ""; 填写成实际申请的 CONSUMER_KEY 及 CONSUMER_SECRET) 1、获取最新公共微博列表 参考:weibo4j.examples.GetTimelines 中的getPublicTimeline()部分 2、发表微博 参考:weibo4j.examples.Update 中的updateStatus(...)部分 3、发表评论 参考:weibo4j.examples.Update 中的updateComment(...)部分 4、删除评论 参考:weibo4j.examples.Update 中的destroyComment(...)部分 5、发送私人消息 参考:weibo4j.examples.DirectMessage 类 6、发表带图片的微博 参考:weibo4j.examples.OAuthUploadByFile 中的uploadStatus(status,file)部分 7、更新用户头像 参考:weibo4j.examples.OAuthUpdateProfile类 8、OAuth桌面应用访问 步骤: 1 在weibo4j.examples.OAuthUpdate 访问认证的URL,得到pin 2 在weibo4j.examples.OAuthUpdate 输入pin,然后得到AccessToken 3 即可访问用户的微博,参考:weibo4j.examples.OAuthUpdateTwo 9、OAuth WEB应用访问 步骤: 1 在weibo4j.examples.WebOAuth 带backurl参数请求OAuth认证,获得RequestToken 2 在callback 的地址里面,接受到oauth_verifier参数,然后再发一次请求,即可获得AccessToken 3 用AccessToken访问用户的微博 实例说明: 在web目录下面有两个jsp页面: call.jsp 是发送request的请求,在第九行的参数“http://localhost:8080/callback.jsp”是回调地址 当获取成功后将RequestToken置入session,并重定向到用户认证地址 callback.jsp 接收到oauth_verifier参数,从session里面拿到RequestToken,再请求获取AccessToken 获取到后即可对用户微博进行操作,本例中是发表微博 测试环境: 本例中可以将call.jsp和 callback.jsp直接放到tomcat的根目录下面:webapps\ROOT 并将实例项目编译好的classes文件和lib目录拷贝到ROOT\WEB-INF下面 重启tomcat,访问http://localhost:8080/call.jsp?opt=1 注:也可以打成war包,但注意call.jsp里面的callback参数需要做相应修改 ============================================================================= 其他接口在weibo4j.Weibo类中定义,调用方式请参考weibo4j.examples,下面是完整的接口列表: 获取下行数据集(timeline)接口 方法名: statuses/public_timeline 最新公共微博 方法名:getPublicTimeline statuses/friends_timeline 最新关注人微博 (别名: statuses/home_timeline) 方法名:getFriendsTimeline statuses/user_timeline 用户发表微博列表 方法名:getUserTimeline(String id, Paging paging) statuses/mentions 最新 @用户的 方法名: getMentions() statuses/comments 单条评论列表(按微博) 方法名:getComments() 微博访问接口 statuses/show 获取单条 方法名:showStatus(long id) statuses/update 发表微博 方法名:updateStatus(String status) statuses/upload 发表微博及图片 方法名:uploadStatus(String status,File file) statuses/destroy 删除 方法名: destroyStatus(long statusId) statuses/comment 评论 方法名: destroyComment(long commentId) statuses/comment_destroy 删除评论 方法名:destroyComment 私信接口 direct_messages 我的私信列表 方法名:getDirectMessages() 分页 getDirectMessages(Paging paging) direct_messages/sent 我发送的私信列表 方法名:getSentDirectMessages() direct_messages/new 发送私信 方法名:sendDirectMessage(String id,String text) direct_messages/destroy 删除一条私信 方法名:destroyDirectMessage(int id) 关注接口 friendships/create 关注某用户 方法名:createFriendship(String id)或 createFriendship(String id, boolean follow) friendships/destroy 取消关注 方法名: destroyFriendship(String id) friendships/exists 是否关注某用户 方法名:existsFriendship(String userA, String userB) friends/ids 关注列表 方法名: getFriendsIDs(long cursor) followers/ids 粉丝列表 方法名:getFollowersIDs(long cursor) 账号接口 account/verify_credentials 验证身份是否合法 方法名:verifyCredentials() account/rate_limit_status 查看当前频率限制 方法名:rateLimitStatus() account/update_profile_image 更改头像 方法名:updateProfileImage(File image) account/update_profile 更改资料 方法名:User updateProfile(String name, String email, String url, String location, String description) 收藏接口 favorites 收藏列表 方法名:getFavorites() favorites/create 添加收藏 方法名:createFavorite(long id) favorites/destroy 删除收藏 方法名:destroyFavorite(long id)
采纳哦

新浪t.cn短网址生成,超赞的网址缩短api接口

分享两个超赞的永久短网址api接口(附在线生成工具),便捷生成新浪t.cn短网址,亲测几个月,感觉非常稳定。短域名的应用场景很广,譬如短信营销、微博吸粉、淘宝客、京东商品营销、微信营销、QQ营销、自媒体推广、渠道推广等,都会用到链接缩短的功能,故觉得不错的,可以收藏使用。

蓝鸟短链接是目前国内比较好的长链接缩短服务平台,该网站免费提供 新浪短网址 转化工具、 新浪短链接api ,无需注册会员即可免费转换。在线生成器支持批量缩短功能,接口支持高并发,无调用频率限制,转换后的短链均是永久有效。

新浪短网址生成器: http://lnurl.cn

新浪短网址api接口: http://lnurl.cn/api/tcn

随着移动SEO的重要性越来越重要,在推广的时候如果把网页链接缩短可以获得更好的访问和收益。快鸟短网址提供了一个便捷的网址压缩工具,用户可以前往该网站免费制作 新浪t.cn短网址 ,同样该站也是支持批量转化的,这对于企业来说,使用起来不仅高效也很便捷。

当然为了满足众多用户的需求,该平台也会提供稳定的api接口,如果觉得手动制作很不方便,也可以注册会员获取接口并调用生成。快鸟短网址以稳定的产品运营和高质量的服务,慢慢地也成为了国内最好的网址缩短服务商之一。

新浪短网址在线生成器: http://kndwz.com

新浪短链接api接口: http://kndwz.com/tcn-api.html

PS:

1、如果出现参数丢失的情况,请先将长链接做urlencode编码,再转化器或者调用api缩短生成。

2、上文提及的转化器和接口可以免费制作,且压缩后的短链有效期都是永久的,大家可以放心使用。

3、生成的短链接没有访问量限制,大家可以放心使用。

4、接口本质上是不限制调用频率的,但个人建议开发人员实时请求,不能太快。

如何开发自己的API接口?

开发自己网站api接口制作的api需要准备几个工作网站api接口制作
第一网站api接口制作:提高你的API的功能
第二网站api接口制作:设置你的API访问协议网站api接口制作,如:socket,http
第三:升级你的API的认证方式,如:curl,oauth
第四:找到属于你的API开发语言 关于网站api接口制作和如何制作api接口的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。 网站api接口制作的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于如何制作api接口、网站api接口制作的信息别忘了在本站进行查找喔。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java基础题新手练习(三)
下一篇:java多线程join()方法的作用和实现原理解析(应用场景)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~