Skip to content

Commit 8662961

Browse files
authored
Add MCP server support to apiService.mustache
Refactor apiService.mustache to include MCP server support and enhance operation methods.
1 parent 1d07128 commit 8662961

1 file changed

Lines changed: 65 additions & 8 deletions

File tree

modules/openapi-generator/src/main/resources/JavaJaxRS/resteasy/apiService.mustache

Lines changed: 65 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,31 +2,88 @@ package {{package}};
22

33
import {{package}}.*;
44
import {{modelPackage}}.*;
5-
{{#operations}}{{#operation}}{{#isMultipart}}import org.jboss.resteasy.plugins.providers.multipart.MultipartFormDataInput;
6-
{{/isMultipart}}{{/operation}}{{/operations}}
5+
import io.quarkiverse.mcp.server.Tool;
6+
import io.quarkiverse.mcp.server.ToolArg;
7+
import jakarta.enterprise.context.ApplicationScoped;
8+
import lombok.AllArgsConstructor;
79

8-
{{#imports}}import {{import}};
10+
{{#operations}}
11+
{{#operation}}
12+
{{#isMultipart}}
13+
import org.jboss.resteasy.plugins.providers.multipart.MultipartFormDataInput;
14+
{{/isMultipart}}
15+
{{/operation}}
16+
{{/operations}}
17+
18+
{{#imports}}
19+
import {{import}};
920
{{/imports}}
1021

1122
import java.util.List;
1223
import {{package}}.NotFoundException;
13-
1424
import java.io.InputStream;
1525

1626
{{#useBeanValidation}}
1727
import {{javaxPackage}}.validation.constraints.*;
1828
import {{javaxPackage}}.validation.Valid;
1929
{{/useBeanValidation}}
30+
2031
import {{javaxPackage}}.ws.rs.core.Response;
2132
import {{javaxPackage}}.ws.rs.core.SecurityContext;
2233

2334
{{>generatedAnnotation}}
2435

2536
{{#operations}}
2637
public interface {{classname}}Service {
27-
{{#operation}}
28-
Response {{nickname}}({{#isMultipart}}MultipartFormDataInput input,{{/isMultipart}}{{#allParams}}{{>serviceQueryParams}}{{>servicePathParams}}{{>serviceHeaderParams}}{{>serviceBodyParams}}{{^isMultipart}}{{>serviceFormParams}},{{/isMultipart}}{{#isMultipart}}{{^isFormParam}},{{/isFormParam}}{{/isMultipart}}{{/allParams}}SecurityContext securityContext)
29-
throws NotFoundException;
30-
{{/operation}}
38+
{{#operation}}
39+
Response {{nickname}}(
40+
{{#isMultipart}}MultipartFormDataInput input,{{/isMultipart}}
41+
{{#allParams}}
42+
{{>serviceQueryParams}}{{>servicePathParams}}{{>serviceHeaderParams}}{{>serviceBodyParams}}{{^isMultipart}}{{>serviceFormParams}},{{/isMultipart}}{{#isMultipart}}{{^isFormParam}},{{/isFormParam}}{{/isMultipart}}
43+
{{/allParams}}
44+
SecurityContext securityContext
45+
) throws NotFoundException;
46+
47+
default Response {{nickname}}(
48+
{{#isMultipart}}MultipartFormDataInput input,{{/isMultipart}}
49+
{{#allParams}}
50+
{{>serviceQueryParams}}{{>servicePathParams}}{{>serviceHeaderParams}}{{>serviceBodyParams}}{{^isMultipart}}{{>serviceFormParams}}{{^last}}, {{/last}}{{/isMultipart}}{{#isMultipart}}{{^isFormParam}}{{^last}}, {{/last}}{{/isFormParam}}{{/isMultipart}}
51+
{{/allParams}}
52+
String context
53+
) throws NotFoundException {
54+
return {{nickname}}(
55+
{{#isMultipart}}input,{{/isMultipart}}
56+
{{#allParams}}{{paramName}},{{/allParams}}
57+
(SecurityContext)null
58+
);
59+
}
60+
{{/operation}}
61+
}
62+
{{#vendorExtensions.x-enable-mcp-server}}
63+
@ApplicationScoped
64+
@AllArgsConstructor
65+
class Mcp{{classname}}Service {
66+
{{classname}}Service service;
67+
68+
{{#operation}}
69+
{{#vendorExtensions.x-enable-mcp-operation}}
70+
@Tool(description = "{{summary}}")
71+
public Response {{nickname}}(
72+
{{#isMultipart}}MultipartFormDataInput input,{{/isMultipart}}
73+
{{#allParams}}
74+
@ToolArg(description = "{{description}}", required = false)
75+
{{>serviceQueryParams}}{{>servicePathParams}}{{>serviceHeaderParams}}{{>serviceBodyParams}}{{^isMultipart}}{{>serviceFormParams}}{{^last}}, {{/last}}{{/isMultipart}}{{#isMultipart}}{{^isFormParam}}{{^last}}, {{/last}}{{/isFormParam}}{{/isMultipart}}
76+
{{/allParams}}
77+
String context
78+
) throws NotFoundException {
79+
return service.{{nickname}}(
80+
{{#isMultipart}}input,{{/isMultipart}}
81+
{{#allParams}}{{paramName}},{{/allParams}}
82+
(SecurityContext)null
83+
);
84+
}
85+
{{/vendorExtensions.x-enable-mcp-operation}}
86+
{{/operation}}
3187
}
88+
{{/vendorExtensions.x-enable-mcp-server}}
3289
{{/operations}}

0 commit comments

Comments
 (0)