Git Product home page Git Product logo

Comments (12)

TommyLemon avatar TommyLemon commented on April 29, 2024 1

@Leowuqunqun @wanghaisheng
这样可以的。不过APIJSON提供了自动化权限校验,以及各种安全机制来保证后端的安全:
#12

from apijson.

wanghaisheng avatar wanghaisheng commented on April 29, 2024

前面再加一层api server来控制吧 用户和库表字段关联起来 字段可以过滤 库表应该可以灵活可配

from apijson.

Leowuqunqun avatar Leowuqunqun commented on April 29, 2024

@TommyLemon 开发者平台之类的要怎么办 文档要手动写了么

from apijson.

TommyLemon avatar TommyLemon commented on April 29, 2024

@Leowuqunqun
目前APIJSON提供了通用文档(GitHub主页) 和 自动化生成的数据库文档(APIJSON在线解析网页)、非开放请求格式的文档(网页底部),还能自动生成请求代码。

平台确实要写权限配置的文档,打算做一个自动解析model注解生成文档的工具,反正解析也很简单。
如果是内部用,Java后端的model类可以直接给Android客户端用,注解里权限配置很清楚。

@MethodAccess(
  POST = {UNKNOWN, ADMIN} //只允许未登录角色和管理员角色新增User,默认配置是 {LOGIN, ADMIN}
)
public class User {}

默认的权限配置在MethodAccess里

/**请求方法权限,只允许某些角色通过对应方法访问
 * @author Lemon
 */
@Documented
@Retention(RUNTIME)
@Target(TYPE)
public @interface MethodAccess {
	
	/**@see {@link RequestMethod#GET}
	 * @return 该请求方法允许的角色 default {UNKNOWN, LOGIN, CONTACT, CIRCLE, OWNER, ADMIN};
	 */
	RequestRole[] GET() default {UNKNOWN, LOGIN, CONTACT, CIRCLE, OWNER, ADMIN};
	
	/**@see {@link RequestMethod#HEAD}
	 * @return 该请求方法允许的角色 default {UNKNOWN, LOGIN, CONTACT, CIRCLE, OWNER, ADMIN};
	 */
	RequestRole[] HEAD() default {UNKNOWN, LOGIN, CONTACT, CIRCLE, OWNER, ADMIN};
	
	/**@see {@link RequestMethod#GETS}
	 * @return 该请求方法允许的角色 default {LOGIN, CONTACT, CIRCLE, OWNER, ADMIN};
	 */
	RequestRole[] GETS() default {LOGIN, CONTACT, CIRCLE, OWNER, ADMIN};
	
	/**@see {@link RequestMethod#HEADS}
	 * @return 该请求方法允许的角色 default {LOGIN, CONTACT, CIRCLE, OWNER, ADMIN};
	 */
	RequestRole[] HEADS() default {LOGIN, CONTACT, CIRCLE, OWNER, ADMIN};

	/**@see {@link RequestMethod#POST}
	 * @return 该请求方法允许的角色  default {LOGIN, ADMIN};
	 */
	RequestRole[] POST() default {LOGIN, ADMIN};

	/**@see {@link RequestMethod#PUT}
	 * @return 该请求方法允许的角色 default {OWNER, ADMIN};
	 */
	RequestRole[] PUT() default {OWNER, ADMIN};
	
	/**@see {@link RequestMethod#DELETE}
	 * @return 该请求方法允许的角色 default {OWNER, ADMIN};
	 */
	RequestRole[] DELETE() default {OWNER, ADMIN};
	
}

这是角色属性类RequestRole

/**来访的用户角色
 * @author Lemon
 */
public enum RequestRole {

	/**未登录,不明身份的用户
	 */
	UNKNOWN,

	/**已登录的用户
	 */
	LOGIN,

	/**联系人,必须已登录
	 */
	CONTACT,
	
	/**圈子成员(CONTACT + OWNER),必须已登录
	 */
	CIRCLE,

	/**拥有者,必须已登录
	 */
	OWNER,

	/**管理员,必须已登录
	 */
	ADMIN;
}

感谢支持^_^

from apijson.

TommyLemon avatar TommyLemon commented on April 29, 2024

@Leowuqunqun
已支持自动生成
数据字典(information_schema.tables,information_schema.columns)、
访问权限(Access.sql)、
远程函数(Funciton.sql)、
非开放请求(Request.sql)
4 种文档,
见自动化接口管理工具 APIJSONAuto 右侧上滑出来的具体文档。
http://apijson.org/

from apijson.

TommyLemon avatar TommyLemon commented on April 29, 2024

image

from apijson.

TommyLemon avatar TommyLemon commented on April 29, 2024

image

from apijson.

TommyLemon avatar TommyLemon commented on April 29, 2024

image

from apijson.

TommyLemon avatar TommyLemon commented on April 29, 2024

image

from apijson.

TommyLemon avatar TommyLemon commented on April 29, 2024

@Leowuqunqun @wanghaisheng APIJSON 3.6.5 已支持直接在数据库 Access 表配置权限,不需要写代码了
https://github.com/APIJSON/APIJSON/releases/tag/3.6.5

from apijson.

Leowuqunqun avatar Leowuqunqun commented on April 29, 2024

@TommyLemon nice

from apijson.

TommyLemon avatar TommyLemon commented on April 29, 2024

@Leowuqunqun @wanghaisheng

腾讯 APIJSON 的路由插件,对外暴露类 RESTful 接口,内部转成 APIJSON 接口执行。
https://github.com/APIJSON/apijson-router

APIJSON 最新版 5.0.0:

增强各种功能;腾讯负责人公开称赞;登记万科发起的采筑电商
https://github.com/Tencent/APIJSON/releases/tag/5.0.0

from apijson.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.