package vip.mate.doc; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import vip.mate.common.result.R; import vip.mate.tool.builtin.MateClawDocService; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; /** * 内置帮助文档的只读接口,供前端文档查看器消费。 * *
文档本体打包在 classpath:docs/{zh,en}/ 下,与给智能体用的
* {@link MateClawDocService} 共享同一套扫描/校验逻辑。
*/
@Slf4j
@Tag(name = "Docs")
@RestController
@RequestMapping("/api/v1/docs")
@RequiredArgsConstructor
public class DocController {
private final MateClawDocService docService;
@Operation(summary = "列出某语言下的全部帮助文档(slug + 标题)")
@GetMapping
public R> list(
@RequestParam(defaultValue = "zh") String lang) {
return R.ok(docService.list(normalizeLang(lang)));
}
@Operation(summary = "读取单篇帮助文档正文(已剥离 frontmatter)")
@GetMapping("/content")
public R