gpt4 book ai didi

spring - 阐述 Spring 注解 API 文档

转载 作者:行者123 更新时间:2023-12-03 21:38:41 26 4
gpt4 key购买 nike

我正在使用 Enunciate 在 Maven 项目中生成 REST API 文档。

Artifact maven-enunciate-plugin 生成 Web API 文档,但它忽略了 Spring 注释,例如:@Secured(来自 spring-security)

我尝试使用支持 spring maven-enunciate-spring-plugin 的 Maven Artifact 生成文档,但它甚至不生成 Web API 文档。

有没有办法配置 enunciate 或使用另一个 enunciate maven 插件,以便在 Enunciate 生成的文档中识别和提及来自 Spring 的注释?

最佳答案

没关系,我通过“将自定义皮肤应用到 Enunctiate 的文档”(http://docs.codehaus.org/display/ENUNCIATE/Applying+a+Custom+Skin+to+Enunciate%27s+Documentation)设法解决了这个问题

我修改了 docs.xml.fmt 以及 enunciate-docsdocs.fmt,所以 '@Secured' 注解是认可。

不幸的是,对于 docs.xml.fmt,没有像我们为 docs.fmt 那样进行自定义的简洁方法。所以,我不得不用这些修改后的文件打包自己。

我引用了@Deprecated(java.lang.Deprecated)是如何处理的,遵循了类似的方法。

docs.fmt 文件中,将此 block 添加到 isDeprecated 的类似功能 block 下方

[#function isSecured element]
[#return (getTagValues(element, "secured")?size > 0)/]
[/#function]

现在,

就在这个 block 下面:

[#if isDeprecated(resource)]
<p class="alert">This resource has been deprecated.</p>
[/#if]

添加另一个 if block

[#if isSecured(resource)]
<p class="note">This resource is available only to these roles:
[#assign securedTags = getTagValues(resource, "secured") /]
[#if securedTags?size > 0]
${securedTags[0]}
[/#if]

[#list resource.parent.annotations as tag]
${tag}
[/#list]
</p>
[/#if]

现在,在 docs.xml.fmt 文件中,就在下面:

[#if resource.parent.annotations["java.lang.Deprecated"]??]
<tag name="deprecated"/>
[/#if]

添加以下 block

[#if resource.parent.annotations["org.springframework.security.access.annotation.Secured"]??]
<tag name="secured">

[#list resource.parent.annotations["org.springframework.security.access.annotation.Secured"]["value"] as roles]
<![CDATA[${roles}]]>
[/#list]

</tag>
[/#if]

关于spring - 阐述 Spring 注解 API 文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17448136/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com