diff --git a/.gitignore b/.gitignore index 36d6d07..3bc1462 100644 --- a/.gitignore +++ b/.gitignore @@ -4,4 +4,6 @@ build dist *.egg-info .idea -_git \ No newline at end of file +_git +.vscode + diff --git a/README.md b/README.md index 688a510..e9d3c13 100644 --- a/README.md +++ b/README.md @@ -4,3 +4,172 @@ You can try: - [Demo uliweb project](demo/README.md) - [uliweb-apijson document](uliweb_apijson/apijson/README.md) + +------ + +uliweb-apijson 是 APIJSON 的 Python 版后端实现,基于 uliweb 框架。 + +

+ APIJSON +

+ +

�码云最有价值开源项目
�后端接口和文档自动化,前端(客户端) 定制返回JSON的数据和结构!

+ +

+ +   +   + +

+

+ + +   +   +   +

+

+ +   +   +

+

+ English +  通用文档 + 视频教程 + 在线工具 +

+ +

+ +

+--- + + +APIJSON是一种为API而生的JSON网络传输协议。
+为 简单的增删改查、复杂的查询、简单的事务操作 提供了完全自动化的API。
+能大幅降低开发和沟通成本,简化开发流程,缩短开发周期。
+适合中小型前后端分离的项目,尤其是互联网创业项目和企业自用项目。
+ +通过自动化API,前端可以定制任何数据、任何结构!
+大部分HTTP请求后端再也不用写接口了,更不用写文档了!
+前端再也不用和后端沟通接口或文档问题了!再也不会被文档各种错误坑了!
+后端再也不用为了兼容旧接口写新版接口和文档了!再也不会被前端随时随地没完没了地烦了! + +

+ +

+ +### 特点功能 + +#### 在线解析 +* 自动生成接口文档,清晰可读永远最新 +* 自动生成请求代码,支持Android和iOS +* 自动生成JavaBean文件,一键下载 +* 自动管理与测试接口用例,一键共享 +* 自动校验与格式化JSON,支持高亮和收展 + +#### 对于前端 +* 不用再向后端催接口、求文档 +* 数据和结构完全定制,要啥有啥 +* 看请求知结果,所求即所得 +* 可一次获取任何数据、任何结构 +* 能去除重复数据,节省流量提高速度 + +#### 对于后端 +* 提供通用接口,大部分API不用再写 +* 自动生成文档,不用再编写和维护 +* 自动校验权限、自动管理版本、自动防SQL注入 +* 开放API无需划分版本,始终保持兼容 +* 支持增删改查、模糊搜索、正则匹配、远程函数等 + +
+ +![](https://raw.githubusercontent.com/TommyLemon/StaticResources/master/APIJSON_Auto_get.jpg) +

+ 多表关联查询、结构自由组合、多个测试账号、一键共享测试用例 +

+ +![](https://raw.githubusercontent.com/TommyLemon/StaticResources/master/APIJSON_Auto_code.jpg) +

+ 自动生成封装请求JSON的Android与iOS代码、一键自动生成JavaBean或解析Response的代码 +

+ +![](https://raw.githubusercontent.com/TommyLemon/StaticResources/master/APIJSON_Auto_doc.jpg) +

+ 自动保存请求记录、自动生成接口文档,可添加常用请求、快捷查看一键恢复 +

+ +![](https://raw.githubusercontent.com/TommyLemon/StaticResources/master/APIJSON_Auto_test.jpg) +

+ 一键自动接口回归测试,不需要写任何代码(注解、注释等全都不要) +

+ +

+[以下Gif图看起来比较卡,实际在手机上App运行很流畅] +
+![](https://raw.githubusercontent.com/TommyLemon/StaticResources/master/APIJSON_App_MomentList_Circle.gif) +![](https://raw.githubusercontent.com/TommyLemon/StaticResources/master/APIJSON_App_Moment_Name.gif) +![](https://raw.githubusercontent.com/TommyLemon/StaticResources/master/APIJSON_App_Moment_Comment.gif) + +
+ +### 为什么要用APIJSON? +[前后端10大痛点解析](https://github.com/TommyLemon/APIJSON/wiki) + +### 快速上手 +[Demo](https://github.com/zhangchunlin/uliweb-apijson/blob/master/demo/README.md)
+[文档](https://github.com/zhangchunlin/uliweb-apijson/blob/master/uliweb_apijson/apijson/README.md) + +### 下载客户端App + +仿微信朋友圈动态实战项目
+[APIJSONApp.apk](http://files.cnblogs.com/files/tommylemon/APIJSONApp.apk) + +测试及自动生成代码工具
+[APIJSONTest.apk](http://files.cnblogs.com/files/tommylemon/APIJSONTest.apk) + + +### 技术交流 +如果有什么问题或建议可以 [提ISSUE](https://github.com/zhangchunlin/uliweb-apijson/issues) 或 [加群](https://github.com/TommyLemon/APIJSON#%E6%8A%80%E6%9C%AF%E4%BA%A4%E6%B5%81),交流技术,分享经验。
+如果你解决了某些bug,或者新增了一些功能,欢迎 [贡献代码](https://github.com/zhangchunlin/uliweb-apijson/pulls),感激不尽~ + +### 贡献者们 +
+ + +
+
+感谢大家的贡献。 + +### 相关推荐 +[APIJSON, 让接口和文档见鬼去吧!](https://my.oschina.net/tommylemon/blog/805459) + +[仿QQ空间和微信朋友圈,高解耦高复用高灵活](https://my.oschina.net/tommylemon/blog/885787) + +[后端开挂:3行代码写出8个接口!](https://my.oschina.net/tommylemon/blog/1574430) + +[后端自动化版本管理,再也不用改URL了!](https://my.oschina.net/tommylemon/blog/1576587) + +[3步创建APIJSON后端新表及配置](https://my.oschina.net/tommylemon/blog/889074) + + +### 其它项目 +[APIJSON](https://github.com/TommyLemon/APIJSON) 码云最有价值项目:后端接口和文档自动化,前端(客户端) 定制返回JSON的数据和结构 + +[APIJSONAuto](https://github.com/TommyLemon/APIJSONAuto) 自动化接口管理工具,自动生成文档与注释、自动生成代码、自动化回归测试、自动静态检查等 + +[APIJSON-Android-RxJava](https://github.com/TommyLemon/APIJSON-Android-RxJava) 仿微信朋友圈动态实战项目,ZBLibrary(UI) + APIJSON(HTTP) + RxJava(Data) + +[Android-ZBLibrary](https://github.com/TommyLemon/Android-ZBLibrary) Android MVP快速开发框架,Demo全面,注释详细,使用简单,代码严谨 + +感谢热心的作者们的贡献,点 ⭐Star 支持下他们吧。 + +### 持续更新 +https://github.com/zhangchunlin/uliweb-apijson/commits/master + +### 码云主页 +https://gitee.com/zhangchunlin/uliweb-apijson + +### 我要赞赏 +如果你喜欢 uliweb-apijson,感觉它帮助到了你,可以点右上角 ⭐Star 支持一下,谢谢 ^_^ diff --git a/uliweb_apijson/__init__.py b/uliweb_apijson/__init__.py index 13583fc..4666582 100644 --- a/uliweb_apijson/__init__.py +++ b/uliweb_apijson/__init__.py @@ -1,4 +1,4 @@ -__version__ = '0.1.0' +__version__ = '0.1.1' __url__ = 'https://github.com/zhangchunlin/uliweb-apijson' __author__ = 'Chunlin Zhang' __email__ = 'zhangchunlin@gmail.com' diff --git a/uliweb_apijson/apijson/README.md b/uliweb_apijson/apijson/README.md index c7bab1a..e6426a9 100644 --- a/uliweb_apijson/apijson/README.md +++ b/uliweb_apijson/apijson/README.md @@ -45,6 +45,7 @@ moment = { "PUT" :{ "ADD":{"@role": "OWNER"}, "NECESSARY" : ["id","content"], + "DISALLOW" : ["email"], }, } } diff --git a/uliweb_apijson/apijson/__init__.py b/uliweb_apijson/apijson/__init__.py index f275ba1..2567372 100644 --- a/uliweb_apijson/apijson/__init__.py +++ b/uliweb_apijson/apijson/__init__.py @@ -21,3 +21,29 @@ def get_apijson_tables(role="UNKNOWN"): editable = role in roles c["editable"] = editable return apijson_tables + +def get_apijson_table(role="UNKNOWN",name=None): + from uliweb import settings + + if not name: + return {} + s = settings.APIJSON_TABLES + if s: + apijson_tables = dict(s.iteritems()) + else: + return {} + + c = apijson_tables.get(name) + if not c: + return {} + editable = c.get("editable",False) + _model_name = c.get("@model_name") or n + if editable=="auto": + editable = False + POST = settings.APIJSON_MODELS.get(_model_name,{}).get("POST") + if POST: + roles = POST["roles"] + if roles: + editable = role in roles + c["editable"] = editable + return c diff --git a/uliweb_apijson/apijson/settings.ini b/uliweb_apijson/apijson/settings.ini index d15caa2..0f6ef81 100644 --- a/uliweb_apijson/apijson/settings.ini +++ b/uliweb_apijson/apijson/settings.ini @@ -19,3 +19,4 @@ user = { [FUNCTIONS] get_apijson_tables = "uliweb_apijson.apijson.get_apijson_tables" +get_apijson_table = "uliweb_apijson.apijson.get_apijson_table" \ No newline at end of file diff --git a/uliweb_apijson/apijson/templates/vue/inc_apijson_table.html b/uliweb_apijson/apijson/templates/vue/inc_apijson_table.html index b5f5e8d..62e0a11 100644 --- a/uliweb_apijson/apijson/templates/vue/inc_apijson_table.html +++ b/uliweb_apijson/apijson/templates/vue/inc_apijson_table.html @@ -1,7 +1,13 @@