@@ -34,7 +34,7 @@ public class WidgetController {
3434 return new Widget (id, " you got it" + hello. hello());
3535 }
3636
37- @Get
37+ @Get ()
3838 List<Widget > getAll () {
3939 return List . of(new Widget (1 , " Rob" ), new Widget (2 , " Fi" ));
4040 }
@@ -186,42 +186,96 @@ package org.example.hello;
186186import static io.avaje.http.api. PathTypeConversion . * ;
187187
188188import io. avaje. http. api. * ;
189- import io.helidon.common.http. FormParams ;
190- import io.helidon.webserver. Handler ;
191- import io.helidon.webserver. Routing ;
192- import io.helidon.webserver. ServerRequest ;
193- import io.helidon.webserver. ServerResponse ;
194- import io.helidon.webserver. Service ;
195- import jakarta.inject. Singleton ;
189+ import io.avaje.inject. Component ;
190+ import io.helidon.nima.webserver.http. HttpRouting ;
191+ import io.helidon.nima.webserver.http. HttpRules ;
192+ import io.helidon.nima.webserver.http. HttpService ;
193+ import io.helidon.nima.webserver.http. ServerRequest ;
194+ import io.helidon.nima.webserver.http. ServerResponse ;
196195import org.example.hello. WidgetController ;
197196
198- @Generated (" io.dinject. helidon-generator" )
199- @Singleton
200- public class WidgetController $Route implements Service {
197+ @Generated (" avaje- helidon-nima -generator" )
198+ @Component
199+ public class WidgetController $Route implements HttpService {
201200
202201 private final WidgetController controller;
203-
204202 public WidgetController$Route (WidgetController controller ) {
205203 this . controller = controller;
206204 }
207205
208206 @Override
209- public void update (Routing .Rules rules ) {
210-
207+ public void routing (HttpRules rules ) {
211208 rules. get(" /widgets/{id}" , this :: _getById);
212- rules. post (" /widgets" , this :: _getAll);
209+ rules. get (" /widgets" , this :: _getAll);
213210 }
214211
215212 private void _getById (ServerRequest req , ServerResponse res ) {
216- int id = asInt(req. path(). param(" id" ));
217- res. send(controller. getById(id));
213+ var pathParams = req. path(). pathParameters();
214+ int id = asInt(pathParams. first(" id" ). get());
215+ var result = controller. getById(id);
216+ res. send(result);
218217 }
219218
220219 private void _getAll (ServerRequest req , ServerResponse res ) {
221- res. send(controller. getAll());
220+ var pathParams = req. path(). pathParameters();
221+ var result = controller. getAll();
222+ res. send(result);
222223 }
223224
224225}
225226```
226227
228+ ### (Helidon Nima with Avaje - Jsonb ) The generated WidgetController $Route . java is:
229+
230+ ```java
231+ package org. example. hello;
232+
233+ import static io.avaje.http.api. PathTypeConversion . * ;
234+
235+ import io. avaje. http. api. * ;
236+ import io.avaje.inject. Component ;
237+ import io.helidon.nima.webserver.http. HttpRouting ;
238+ import io.helidon.nima.webserver.http. HttpRules ;
239+ import io.helidon.nima.webserver.http. HttpService ;
240+ import io.helidon.nima.webserver.http. ServerRequest ;
241+ import io.helidon.nima.webserver.http. ServerResponse ;
242+ import org.example.hello. WidgetController ;
243+
244+ @Generated (" avaje-helidon-nima-generator" )
245+ @Component
246+ public class WidgetController $Route implements HttpService {
247+
248+
249+ private final WidgetController controller;
250+ private final JsonType<org.example.hello. WidgetController . Widget > getByIdReturnedJsonType;
251+ private final JsonType<java.util.List<org.example.hello. WidgetController . Widget > > getAllReturnedJsonType;
252+
253+ public WidgetController$Route (WidgetController controller , Jsonb jsonB ) {
254+ this . controller = controller;
255+ this . getByIdReturnedJsonType = jsonB. type(org.example.hello. WidgetController . Widget . class);
256+ this . getAllReturnedJsonType = jsonB. type(org.example.hello. WidgetController . Widget . class). list();
257+ }
258+
259+ @Override
260+ public void routing (HttpRules rules ) {
261+ rules. get(" /widgets/{id}" , this :: _getById);
262+ rules. get(" /widgets" , this :: _getAll);
263+ }
264+
265+ private void _getById (ServerRequest req , ServerResponse res ) {
266+ var pathParams = req. path(). pathParameters();
267+ int id = asInt(pathParams. first(" id" ). get());
268+ var result = controller. getById(id);
269+ res. headers(). contentType(io.helidon.common.http. HttpMediaType . APPLICATION_JSON );
270+ getByIdReturnedJsonType. toJson(result, res. outputStream());
271+ }
227272
273+ private void _getAll (ServerRequest req , ServerResponse res ) {
274+ var pathParams = req. path(). pathParameters();
275+ var result = controller. getAll();
276+ res. headers(). contentType(io.helidon.common.http. HttpMediaType . APPLICATION_JSON );
277+ getAllReturnedJsonType. toJson(result, res. outputStream());
278+ }
279+
280+ }
281+ ```
0 commit comments