Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

【交流】is_api 这个字段目前看是只在impacted_api_list 输出controller,可以输出指定的api接口么(如RPC服务) #25

Open
shnnny opened this issue Jul 17, 2024 · 4 comments
Assignees
Labels
enhancement New feature or request

Comments

@shnnny
Copy link

shnnny commented Jul 17, 2024

如何控制is_api 能否抽象成依据某种特征,如controller 相关注解 或者自定义注解,不是直接写在代码中,作为配置文件config.py管理

@baikaishuipp
Copy link
Owner

方便给个具体示例吗?涉及代码安全的可以加我微信私聊

@baikaishuipp baikaishuipp added the enhancement New feature or request label Jul 18, 2024
@shnnny
Copy link
Author

shnnny commented Jul 19, 2024

不涉及代码安全,impacted_api_list 目前输出的是controller,这种是web服务,提供http接口,。在rpc接口中,一般是定义接口类,然后注册接口类到注册中心,具体的实现类impl 一般implements rpc接口,这个接口类似于controller,作为入口,存在两种情况,一种是这个接口是通过pom引入进来的,工程里没有具体的java文件,一种是跟impl类在同一个项目中。想把这种情况 同时作为impacted_api_list 的一部分。 如下代码:
`@Slf4j
@service
public class LoginUserServiceImpl extends ServiceImpl implements ILoginUserService {

@Override
public Set<String> listByInUsers(Set<String> users) {
    if (ObjectUtils.isEmpty(users)) {
        return Sets.newHashSet();
    }
    OpenApi.get("11");
    System.out.println("变更是否影响接口");

    return Sets.newHashSet();
}

} public interface ILoginUserService extends IService {

/**
 *PRC接口服务 (这个接口 可以跟impl存在同一个工程里面,也可以是一个pom文件引入的接口类)
 *
 * @param users
 * @return
 */
Set<String> listByInUsers(Set<String> users);

}`
变更影响的是 ILoginUserService 或者是ILoginUserService#listByInUsers其中rpc接口是com.test.ILoginUserService

@shnnny
Copy link
Author

shnnny commented Jul 19, 2024

在源码的基础上 我修改了一版,思路是利用class表中的implements 去import表中查询,然后校验当前接口是否为rpc接口。后面说的问题 is_api 不仅仅是controller的api 也存在我说的上面rpc接口的api,不过这个就不像controller那样有具体的注解标识性比较强了。

@baikaishuipp
Copy link
Owner

这个不好改,你的代码示例也没有自定义注解,而且靠implements也不通用,

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants