各位老铁们好,相信很多人对api配置网站源码分享都不是特别的了解,因此呢,今天就来为大家分享下关于api配置网站源码分享以及网站api接口调用教程的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!
极速输出API接口
API接口开发,是当前软件开发项目中重要部分。掌握API接口的极速开发技巧、工具和思想,能让你设计、开发和维护接口项目更加得心应手,让本来“看不见”、“摸不着”的API接口开发更加有趣、有成就感。
首先,这里分享的是【极速】,不是【快速】,这意味着【极速】会比【快速】更高一个级别。基本一个开发就可以维护几个接口项目、600+款API接口,事实上我就是这样进行日常开发和维护的。
其次,开宗明义,本次分享的【输出API接口】,涵盖API接口设计、接口文档、接口开发、接口黑盒测试、接口白盒测试、接口发布、接口正向工程。
下面,就来分享下极速输出API的开发体验。重点内容有:
在线设计接口文档一键生成API源代码自动生成接口文档一键运行API接口即刻搭建开放平台和提供OpenAPI一键生成数据库Model类源代码自动生成测试代码一键测试100%测试通过率一键发布到分布式集群服务器在线发布
内容上,承上启下,有连续性,但实际应用时,可以按需部分应用。
图片来源网络
技术栈和用到的工具
犹如物理定律和公式一样,成立的前提要有前置假设条件。
为了能达到极速开发API接口的效果,假设你已经:
1、有一定的编程经验或接口项目开发经验
2、已经有数据库、内部API接口或待开发的项目
3、当需要把内部API接口开放部分接口时,更为匹配
将使用到的技术栈是(如果你已熟悉或掌握,效果更佳):
1、PHP开发语言
2、MySQL数据库或其他数据库
3、Linux和命令行终端的基本使用
将会用到的框架或工具:
1、PhalApi开源接口框架
2、YesDev协作云的接口文档管理
3、PHPUnit单元测试
4、搭建开放平台的接口大师(可选)
真实的接口项目成例
以下是已经上线的接口项目,分别是:
1、果创云,API接口数量500+款
2、接口大师,API接口数量208款
3、YesDev协作云,API接口数量333+款
以上3个接口项目的API接口,累计约有1000+款API接口(实际上,数量远不止这些接口,还有很多隐藏接口)。都是我和我的团队一起开发和维护的,从接口设计、开发、测试和上线,都应用这一套的极速开发模型,目前运行稳定,每日都被调用成千上万次。
关键理念和思想
谋定而动。
恰到其分、优秀的系统架构,需要符合SOLID原则、既满意高度的抽象又不失具体的实现;令人尖叫的产品,需要结合最小试错成本、MVP产品和敏捷开发,直击用户痛点。
要想实现API接口的极速输出和开发,就需要重点在效率和质量上“狠花”心思。只有把接口开发、维护的时间和精力减到最低最低,我们才能真正体验到极速开发的快感;只有把接口质量追求到极致,才能真正领悟到成千上万次API接口调用和高并发背后的稳定、安详和99.999%的SLA服务水平。
关键的理念和思想有:
1、编程境界:无代码优于生成代码;生成代码优先编写代码;尽量不要人工写代码。
2、自动化原则:尽可能进行自动化,把一切重复手工操作的实现自动化,并交由计算机来运行,只有这样,在效率提升上才能进行质的飞跃。
3、CI持续集成:再小的项目,再小的团队也要搭建自己接口项目的持续集成体系,从开发和发布,一气呵成。
4、用代码证明代码:不依靠人的主观判断或臆想,而是通过白盒测试用单元测试证明每一条规则、每一个场景、每一行代码。
5、充分发挥编程语言的优势:每一种编程语言都有它的优势和专长,例如PHP的动态和解析性,可以在这基础上进行很多有创意的创作,减少代码维护的成本。
在线设计接口文档
在YesDev协作云上,可以在线编辑和协作你的接口文档。你可以创建一个或多个接口项目。
维护好后,可以看到类似这样的接口文档访问主页和效果。
访问链接:https://www.yesdev.cn/apidocs-home-13.html
这是第一步,比较传统和手工的做法。但接下来,是故事开始的地方。你也可以跳过此环节。
一键生成API源代码
当有了接口文档,我们下一步,可以做什么呢?
一方面,有了接口文档,我们就可以和前端开发者或外部的合作方,进行接口对接,让对方可以先参考和根据接口文档进行开发,避免阻塞对方的开发进度。
另一方面,很重要的是。当前,我们的传统做法都是先写API接口,写补充或生成接口文档。那么,有没一种可能,如果有一份接口文档,可以得到API接口吗?如果能做到这一点,无疑能:1)极大降低API接口开发的技术难度;2)帮助有专业技能的开发者极大提升开发接口的效率,节省时间。
例如,基于前面的接口文档元数据,我编写了一个根据接口文档自动生成API接口PHP源代码的解析引擎,最终简化为脚本命令的使用。
编写好脚本后,运行的效果是:
[apps@izwz96prwhiplqswy76kvvzyesinew_www]$./bin/apidocs/build_my_apis.php13\nStarttobuildmyapi会员注册intoproduct…\nStarttobuildmyapiHelloWolrd示例接口intoproduct…\nFinished!\n[apps@izwz96prwhiplqswy76kvvzyesinew_www]$tree./runtime/\ncache/_install.locklog/Project13/README.mdtask/weChatLogin/\n[apps@izwz96prwhiplqswy76kvvzyesinew_www]$tree./runtime/Project13\n./runtime/Project13\n├──demos\n│├──N0.C0.A3.json\n│└──N17.C0.A5.json\n├──N0\n│└──C0.php\n└──N17\n└──C0.php\n\n\n3directories,4files
简单解释一下,上面执行了./bin/apidocs/build_my_apis.php脚本,并传递了参数13(对应上面的接口项目ID),随后开始根据接口文档元数据生成对应的API接口源代码。这里使用的格式是基于PhalApi开源接口框架进行设计和生成的。
所以,以上面的“会员注册”为例,生成的PHP接口代码,类似如下:
<?php\nnamespaceN17\\Api;\n\n\nusePhalApi\\Exception\\BadRequestException;\nuseN17\\Common\\Api;\n\n\n/**\n*默认分类\n*/\nclassC0extendsApi{\n\n\n/**\n*会员注册\n*@desc会员注册\n*/\npublicfunctionA5(){\n$PARAMS=get_object_vars($this);\n\n\n$api_version=&34;;\n$module_url=&34;;\n$api_service_url=&34;;\n$api_service_request_type=&34;;\n$url=$module_url.$api_service_url;\n\n\n$funRs=$this->requestProxy($url,$PARAMS,$api_service_request_type);\n\n\nreturn$funRs;\n}\n}
可以看到上面生成的API接口代码中,实现了对内部API接口的中转和调用。
生成API源代码后,就可打包放到PhalApi开源接口框架,运行和使用。
试想一下,如果瞬间可以生成和输出100个或几百个API接口,开发效率是何等的高效和方便。最后,你只需要做的,只是在接口基类完成一些业务上的通用处理即可。
一键运行API接口
有了上面生成的API接口源代码后,就需要把API接口运行起来,这时,就需要用到PhalApi开源接口框架了。
根据PhalApi官网(https://www.phalapi.net/)的介绍,只需要一行命令就可以安装PhalApi2.x最新版本。
1、composer安装PhalApi2.x
$composercreate-projectphalapi/phalapi
2、使用HTTP访问接口
http://localhost/phalapi/public/
3、查看在线接口文档
http://localhost/phalapi/public/docs.php
本地安装部署后,再把前面的接口代码包解压放到src目录,就可以直接使用了。
温馨提示:下一步,YesDev将会支持直接导出API接口源代码,当前还在开发中。
自动生成接口文档
无论是不是使用PHP还是Java或其他语言开发API接口,还是使用其他和编程语言无关的方式编写维护API接口文档,最重要的一点就是,尽量避免再次人工额外维护接口,应该使用工具根据接口源代码实时、自动生成。
这时需要用到编程开发语言的高级语法,例如PHP的反射,Java的注解等。
在PhalApi开源接口框架中,当API接口代码写好后,是可以实时自动生成对应的API接口文档,并且支持在线测试接口。
这部分内容不再赘述,详情可参考:《PhalApi2.x开发文档-1.12接口文档》http://docs.phalapi.net/39;name&39;dogstar&39;curd&!/bin/bash\n发布代码到各服务器\n@authordogstar20180123\n\n\nDIR=&34;$(dirname&34;)&34;\nis_pre=$(echo$DIR|grep&34;)\nif[[&34;==&34;]]\nthen\necho&34;\nexit1\nfi\n\n\nif[$34;Usage:$0<src|lite|full>&34;&34;-$0src34;\necho&releasesrc,public,config,etc.NOTwithvendor(正常,排除vendor)&34;-$0full34;\necho&34;\nexit1\nfi\n\n\nSUCCESS=&39;\nFAILURE=&39;\nRES=&39;\n\n\n34;/path/to/preview/www.yesdev.cn&34;/path/to/projects/www.yesdev.cn&34;127.0.0.1&34;starttoreleasetoproduct…&34;&Step0.备份备份\ncp$API_ROOT_PRE/release/bak/yesdev.tar.gz$API_ROOT_PRE/release/bak/yesdev.tar.gz.bak\n\n\n34;./src&34;$release_what&34;full&34;./src./vendor–exclude*.svn–exclude=*.git&Step2.打包\ntar-czf./release/yesdev.tar.gz\\\n./config/di.php\\\n./config/app.php\\\n./bin\\\n./data\\\n./plugins\\\n./language\\\n./composer.json\\\n$src_and_vendor\n\n\nif[&34;==&34;];then\ntar-czf./release/yesdev.tar.gz./src\nfi\n\n\nStep4.解压\n34;tar-xzf$API_ROOT/yesdev.tar.gz-C$API_ROOT&34;${SUCCESS}OK!${RES}&34;”
值得注意的是,在PHP开发的项目中,对于composer包,有2点注意事项。第1:composer包不应纳入git代码仓库管理;第2:每次发布,除非有必要,否则不发布vendor目录,避免发布过慢。其他语言也类似,最好实现增量的发布,并且把第三方依赖的包和源代码在代码仓库中排除掉。
在线发布
一键发布,已经很方便了,但还不够友好。毕竟,它还要要求使用的人要登录服务器或跳板机,还要会懂得执行命令。
那有没有更简便的发布方式呢?
答案:还是有的!
可以在内部开发一个发布系统的界面,让有权限的人,可以选择需要发布的项目,进行在线发布。这样就非常完美了。例如我们的发布系统1.0。
接口开发,唯快不破
API接口,从设计到上线,已经分享了极速开发过程中用到的工具和思想。关键词:自动生成代码、一键测试、使用合适的工具。
好了,关于api配置网站源码分享和网站api接口调用教程的问题到这里结束啦,希望可以解决您的问题哈!