1 Commits

Author SHA1 Message Date
anian 0e4184057a 新增类别接口 2026-06-15 20:22:20 +08:00
5 changed files with 61 additions and 3 deletions
+3
View File
@@ -2,6 +2,9 @@
> 基于原作者v1.2.2代码修改 > 基于原作者v1.2.2代码修改
#### v1.2.2-2
1. 新增类别接口`/apis/api.douban.moony.la/v1alpha1/doubanmovies/-/types`(基于原作者v1.2.5代码)
#### v1.2.2-1 #### v1.2.2-1
1. 修改前台页面路由为/books 1. 修改前台页面路由为/books
2. 控制台类别value不再限制 2. 控制台类别value不再限制
+37
View File
@@ -144,6 +144,28 @@
"tags" : [ "api.douban.moony.la/v1alpha1/DoubanMovie" ] "tags" : [ "api.douban.moony.la/v1alpha1/DoubanMovie" ]
} }
}, },
"/apis/api.douban.moony.la/v1alpha1/doubanmovies/-/types" : {
"get" : {
"description" : "List all douban types.",
"operationId" : "ListTypes",
"responses" : {
"default" : {
"content" : {
"*/*" : {
"schema" : {
"type" : "array",
"items" : {
"$ref" : "#/components/schemas/DoubanTypeVo"
}
}
}
},
"description" : "default response"
}
},
"tags" : [ "api.douban.moony.la/v1alpha1/DoubanMovie" ]
}
},
"/apis/api.douban.moony.la/v1alpha1/doubanmovies/-/getDoubanDetail" : { "/apis/api.douban.moony.la/v1alpha1/doubanmovies/-/getDoubanDetail" : {
"get" : { "get" : {
"description" : "getDoubanDetail.", "description" : "getDoubanDetail.",
@@ -851,6 +873,21 @@
} }
} }
}, },
"DoubanTypeVo" : {
"type" : "object",
"properties" : {
"doubanCount" : {
"type" : "integer",
"format" : "int32"
},
"key" : {
"type" : "string"
},
"name" : {
"type" : "string"
}
}
},
"JsonPatch" : { "JsonPatch" : {
"minItems" : 1, "minItems" : 1,
"uniqueItems" : true, "uniqueItems" : true,
+1 -1
View File
@@ -1 +1 @@
version=1.2.2-1 version=1.2.2-2
@@ -2,8 +2,10 @@ package la.moony.douban;
import io.swagger.v3.oas.annotations.enums.ParameterIn; import io.swagger.v3.oas.annotations.enums.ParameterIn;
import la.moony.douban.extension.DoubanMovie; import la.moony.douban.extension.DoubanMovie;
import la.moony.douban.finders.DoubanFinder;
import la.moony.douban.service.DoubanService; import la.moony.douban.service.DoubanService;
import la.moony.douban.vo.DoubanMovieVo; import la.moony.douban.vo.DoubanMovieVo;
import la.moony.douban.vo.DoubanTypeVo;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springdoc.webflux.core.fn.SpringdocRouteBuilder; import org.springdoc.webflux.core.fn.SpringdocRouteBuilder;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@@ -25,9 +27,12 @@ public class DoubanEndpoint implements CustomEndpoint {
private final DoubanService doubanService; private final DoubanService doubanService;
private final DoubanFinder doubanFinder;
public DoubanEndpoint(DoubanService doubanService) {
public DoubanEndpoint(DoubanService doubanService, DoubanFinder doubanFinder) {
this.doubanService = doubanService; this.doubanService = doubanService;
this.doubanFinder = doubanFinder;
} }
@Override @Override
@@ -43,6 +48,13 @@ public class DoubanEndpoint implements CustomEndpoint {
); );
DoubanMovieQuery.buildParameters(builder); DoubanMovieQuery.buildParameters(builder);
}) })
.GET("doubanmovies/-/types", this::ListTypes,
builder -> builder.operationId("ListTypes")
.description("List all douban types.")
.tag(doubanMovieTag)
.response(responseBuilder()
.implementationArray(DoubanTypeVo.class)
))
.GET("doubanmovies/-/genres", this::ListGenres, .GET("doubanmovies/-/genres", this::ListGenres,
builder -> builder.operationId("ListGenres") builder -> builder.operationId("ListGenres")
.description("List all douban genres.") .description("List all douban genres.")
@@ -87,6 +99,12 @@ public class DoubanEndpoint implements CustomEndpoint {
.flatMap(result -> ServerResponse.ok().bodyValue(result)); .flatMap(result -> ServerResponse.ok().bodyValue(result));
} }
private Mono<ServerResponse> ListTypes(ServerRequest request) {
return doubanFinder.listAllType()
.collectList()
.flatMap(result -> ServerResponse.ok().bodyValue(result));
}
private Mono<ServerResponse> getDoubanDetail(ServerRequest request) { private Mono<ServerResponse> getDoubanDetail(ServerRequest request) {
String url = request.queryParam("url").orElse(null); String url = request.queryParam("url").orElse(null);
return doubanService.getDoubanDetail(url) return doubanService.getDoubanDetail(url)
@@ -10,7 +10,7 @@ metadata:
rbac.authorization.halo.run/display-name: "查看朋友圈提交模板" rbac.authorization.halo.run/display-name: "查看朋友圈提交模板"
rules: rules:
- apiGroups: [ "api.douban.moony.la" ] - apiGroups: [ "api.douban.moony.la" ]
resources: [ "doubanmovies","doubanmovies/genres","doubanmovies/getDoubanDetail"] resources: [ "doubanmovies","doubanmovies/types","doubanmovies/genres","doubanmovies/getDoubanDetail"]
verbs: [ "get", "list" ] verbs: [ "get", "list" ]
--- ---