@JsonApiResource(type = PersonDto.RESOURCE_TYPE)
@EntityMapping(entityClass = Person.class)
//@ResourceAccess(readOnly = true)
@ApiResource(group = ApiResourceGroup.CONTACT_AND_ACTIVITY)
public class PersonDto extends PartyDto {
}

 

将@ResourceAccess(readOnly = true)注释掉,则,重新编译项目,访问ip/backstop/api-docs/index.html#!/_People,则发现,在people对应下,由原来只有get/post变成了get/post/delete/patch四种请求都有。

simon告诉我,这是基于反射的原理。具体内部如下:

web.xml:

    <servlet>
        <servlet-name>Jersey Katharsis Service</servlet-name>
        <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
        <init-param>
            <param-name>javax.ws.rs.Application</param-name>
            <param-value>com.backstopsolutions.api.KatharsisApplication</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

kathasisApplication:

@Singleton
@ApplicationPath("/")
public class KatharsisApplication extends ResourceConfig {
    public static final String API_PATH_PREFIX = "/backstop/api";
    public static final String API_PACKAGE_NAME = "com.backstopsolutions.api";

    public KatharsisApplication() {
        property(KatharsisProperties.RESOURCE_SEARCH_PACKAGE, API_PACKAGE_NAME + ",io.katharsis");
        property(KatharsisProperties.WEB_PATH_PREFIX, API_PATH_PREFIX);
        register(BackstopContext.getInjector().getInstance(KatharsisDynamicFeature.class));
    }
}

kathasisDynamicFeature:

@Override
    public boolean configure(FeatureContext context) {
        if (!super.configure(context)) {
            return false;
        }

        // Swagger filter
        context.register(injector.getInstance(ApiDocFilter.class));

        // API usage filter
        context.register(injector.getInstance(ApiUsageFilter.class));

        // API version filter
        context.register(injector.getInstance(ApiVersionFilter.class));

        // Clean up
        context.register(injector.getInstance(ApiContextCleanUpFilter.class));

        apiContext.initialize();
        return true;
    }

ApiDocFilter:

和swagger关联,具体,内部怎么反射变成swagger调试工具,不是很懂。如有同事能解释清楚,望补充。

PersonDto中@ResourceAccess(readOnly = true)以及swagger的理解-----似懂非懂,日后消化的更多相关文章

  1. [转载]ASP.NET中TextBox控件设立ReadOnly="true"后台取不到值

    原文地址:http://www.cnblogs.com/yxyht/archive/2013/03/02/2939883.html ASP.NET中TextBox控件设置ReadOnly=" ...

  2. .NET中TextBox控件设置ReadOnly=true后台取不到值的解决方法

    在.NET 2.0 下,当页面上的某个TextBox 设置了属性ReadOnly="True"时,通过客户端脚本给其赋值后,在后台代码中访问其Text属性却无法获得该值.经过尝试, ...

  3. .NET中TextBox控件设置ReadOnly=true后台取不到值三种解决方法

    当TextBox设置了ReadOnly=true后要是在前台为控件添加了值,后台是取不到的,值为空,多么郁闷的一个问题经过尝试,发现可以通过如下的方式解决这个问题.感兴趣的朋友可以了解下 当TextB ...

  4. .NET中TextBox控件设置ReadOnly=true后台取不到值 三种解决方法

    方法一:不设置ReadOnly属性,通过onfocus=this.blur()来模拟,如下: <asp:TextBox ID="TextBox1" runat="s ...

  5. ASP.NET 中TextBox设置ReadOnly="true" 无法取到值的做法

    当 TextBox设置了ReadOnly="true" 后,要是在前台为控件添加了值,后台是取不到的,值为“空” 原理没想通,说不清楚微软是出于什么考虑的,https://www. ...

  6. ASP.NET中TextBox控件设立ReadOnly="true"后台取不到值

    SP.NET中TextBox控件设置ReadOnly="true"H或Enabled=false后台取不到值 当TextBox设置了ReadOnly="true" ...

  7. readonly=“readonly”与readonly=“true”

    <input id="u" readonly /> <input id="u" readonly="readonly" / ...

  8. Spring boot中使用springfox来生成Swagger Specification小结

    Rest接口对应Swagger Specification路径获取办法: 根据location的值获取api   json描述文件 也许有同学会问,为什么搞的这么麻烦,api json描述文件不就是h ...

  9. Spring 注解@Transactional readOnly=true

    引子 今天下班后,以前同事小胖问我Spring  Service类中的注解@Transactional readOnly=true的作用.做为他眼中的高人,我自然要装下A-C.居然想都没有想就说是注解 ...

随机推荐

  1. python使用 db.select 返回的数据只能遍历一次

    python中通过find从mongo中查出的数据,或者通过select返回的数据,其实返回的是游标,当你进行便利一次之后,游标指向最后, 所以当你再一次进行便利时,便出现数据为空的现象. 解决办法: ...

  2. Greenplum中角色权限及客户端认证管理

    角色权限及客户端认证管理 GP数据库逻辑结构 在GP中,Database(数据库).Schema(模式)以及Role(角色)三者之间的关系如下所示: 一个数据库下可以有多个模式,一个模式只属于一个数据 ...

  3. LeetCode Design Compressed String Iterator

    原题链接在这里:https://leetcode.com/problems/design-compressed-string-iterator/description/ 题目: Design and ...

  4. Qt Creator 中自动补全的快捷键描述

    在TextEdit中的completeThis

  5. python 修改文件内容

    python 修改文件内容 一.修改原文件方式 1 def alter(file,old_str,new_str): 2 """ 3 替换文件中的字符串 4 :param ...

  6. zabbix上的宏(macro)介绍

    宏:macro,预设的文本替换模式: 宏是一种抽象概念(Abstraction),它根据一些列预定义的规则替换一定的文本模式,而解释或编译器在遇到宏时会自动进行这一模式替换.类似地,zabbix基于宏 ...

  7. Xcode工具特性

    1.注释 #pragma mark 注释说明#pragma mark - 分类/分组注释说明 2.自定义代码块. 3.多文本编辑框 View>>Assistant Editor

  8. 蓝桥杯 基础练习 BASIC-19 完美的代价

    基础练习 完美的代价   时间限制:1.0s   内存限制:512.0MB 问题描述 回文串,是一种特殊的字符串,它从左往右读和从右往左读是一样的.小龙龙认为回文串才是完美的.现在给你一个串,它不一定 ...

  9. 摘之知乎网友...PHYTIN学习

    作者:东瓜王链接:https://www.zhihu.com/question/19593179/answer/23746083来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明 ...

  10. who命令参数及用法详解(linux查看在线用户命令)

    功能说明:显示目前登入系统的用户信息.  语 法:who [-Himqsw][--help][--version][am i][记录文件]  补充说明:执行这项指令可得知目前有那些用户登入系统,单独执 ...