@@ -145,8 +145,8 @@ func (w *EchoWrapper) PATCHTyped(path string, h echo.HandlerFunc, desc Desc, req
145145 return w .Echo .PATCH (path , h , m ... )
146146}
147147
148- func (w * EchoWrapper ) DELETETyped (path string , h echo.HandlerFunc , desc Desc , resp any , m ... echo.MiddlewareFunc ) * echo.Route {
149- w .AddAPITyped (path , desc , "DELETE" , nil , resp )
148+ func (w * EchoWrapper ) DELETETyped (path string , h echo.HandlerFunc , desc Desc , req any , resp any , m ... echo.MiddlewareFunc ) * echo.Route {
149+ w .AddAPITyped (path , desc , "DELETE" , req , resp )
150150 return w .Echo .DELETE (path , h , m ... )
151151}
152152
@@ -198,65 +198,122 @@ func makeHandlerNoContent[Req any](h func(ctx echo.Context, req Req) error) echo
198198 }
199199}
200200
201- // handlerを受け取ってGETエンドポイントを生やす関数
202- // handlerの戻り値がnilではない時は、c.JSON(http.StatusOK, resp)として返す
203- // handlerの戻り値がnilの場合は、c.NoContent(http.StatusOK)として返す
204- // NOTE: Go1.20時点では、メソッドがtype parameterをもてないので関数として定義されている
201+ /*
202+ func(echo.Context) (Resp, error)の型をもつhandlerを受け取り、GETのAPIを生やす。Responseはstatusとして200、bodyとしてJSONで返す。
203+
204+ NOTE: Go1.20時点では、メソッドがtype parameterをもてないので関数として定義されている
205+ */
205206func EwGET [Resp any ](w * EchoWrapper , path string , h func (ctx echo.Context ) (Resp , error ), desc Desc , m ... echo.MiddlewareFunc ) * echo.Route {
206207 var resp Resp
207208 return w .GETTyped (path , makeHandlerNoRequest (h ), desc , resp , m ... )
208209}
209210
210- // 詳細についてはEwGETを見よ
211- // 返すべきresponseがないケースでは、EwPOSTNoContentを使うこと
211+ /*
212+ func(echo.Context, Req) (Resp, error)の型をもつhandlerを受け取り、POSTのAPIを生やす。RequestはJSONとしてBindする。Responseはstatusとして200、bodyとしてJSONで返す。
213+
214+ Requestを受け取らないケースでは EwPOSTNoRequest を使い、Responseを返さないケースでは EwPOSTNoContent を使うこと。
215+ */
212216func EwPOST [Req any , Resp any ](w * EchoWrapper , path string , h func (ctx echo.Context , req Req ) (Resp , error ), desc Desc , m ... echo.MiddlewareFunc ) * echo.Route {
213217 var req Req
214218 var resp Resp
215219 return w .POSTTyped (path , makeHandler (h ), desc , req , resp , m ... )
216220}
217221
218- // 詳細についてはEwGETを見よ
222+ /*
223+ func(echo.Context) (Resp, error)の型をもつhandlerを受け取り、POSTのAPIを生やす。Responseはstatusとして200、bodyとしてJSONで返す。
224+ */
225+ func EwPOSTNoRequest [Resp any ](w * EchoWrapper , path string , h func (ctx echo.Context ) (Resp , error ), desc Desc , m ... echo.MiddlewareFunc ) * echo.Route {
226+ var resp Resp
227+ return w .POSTTyped (path , makeHandlerNoRequest (h ), desc , nil , resp , m ... )
228+ }
229+
230+ /*
231+ func(echo.Context, Req) errorの型をもつhandlerを受け取り、POSTのAPIを生やす。RequestはJSONとしてBindする。Responseはstatusとして204を返す。
232+ */
219233func EwPOSTNoContent [Req any ](w * EchoWrapper , path string , h func (ctx echo.Context , req Req ) error , desc Desc , m ... echo.MiddlewareFunc ) * echo.Route {
220234 var req Req
221235 return w .POSTTyped (path , makeHandlerNoContent (h ), desc , req , nil , m ... )
222236}
223237
224- // 詳細についてはEwGETを見よ
225- // 返すべきresponseがないケースでは、EwPUTNoContentを使うこと
238+ /*
239+ func(echo.Context, Req) (Resp, error)の型をもつhandlerを受け取り、PUTのAPIを生やす。RequestはJSONとしてBindする。Responseはstatusとして200、bodyとしてJSONで返す。
240+
241+ Requestを受け取らないケースでは EwPUTNoRequest を使い、Responseを返さないケースでは EwPUTNoContent を使うこと。
242+ */
226243func EwPUT [Req any , Resp any ](w * EchoWrapper , path string , h func (ctx echo.Context , req Req ) (Resp , error ), desc Desc , m ... echo.MiddlewareFunc ) * echo.Route {
227244 var req Req
228245 var resp Resp
229246 return w .PUTTyped (path , makeHandler (h ), desc , req , resp , m ... )
230247}
231248
232- // 詳細についてはEwGETを見よ
249+ /*
250+ func(echo.Context) (Resp, error)の型をもつhandlerを受け取り、PUTのAPIを生やす。Responseはstatusとして200、bodyとしてJSONで返す。
251+ */
252+ func EwPUTNoRequest [Resp any ](w * EchoWrapper , path string , h func (ctx echo.Context ) (Resp , error ), desc Desc , m ... echo.MiddlewareFunc ) * echo.Route {
253+ var resp Resp
254+ return w .PUTTyped (path , makeHandlerNoRequest (h ), desc , nil , resp , m ... )
255+ }
256+
257+ /*
258+ func(echo.Context, Req) errorの型をもつhandlerを受け取り、PUTのAPIを生やす。RequestはJSONとしてBindする。Responseはstatusとして204を返す。
259+ */
233260func EwPUTNoContent [Req any ](w * EchoWrapper , path string , h func (ctx echo.Context , req Req ) error , desc Desc , m ... echo.MiddlewareFunc ) * echo.Route {
234261 var req Req
235262 return w .PUTTyped (path , makeHandlerNoContent (h ), desc , req , nil , m ... )
236263}
237264
238- // 詳細についてはEwGETを見よ
265+ /*
266+ func(echo.Context, Req) (Resp, error)の型をもつhandlerを受け取り、PATCHのAPIを生やす。RequestはJSONとしてBindする。Responseはstatusとして200、bodyとしてJSONで返す。
267+
268+ Requestを受け取らないケースでは EwPATCHNoRequest を使い、Responseを返さないケースでは EwPATCHNoContent を使うこと。
269+ */
239270func EwPATCH [Req any , Resp any ](w * EchoWrapper , path string , h func (ctx echo.Context , req Req ) (Resp , error ), desc Desc , m ... echo.MiddlewareFunc ) * echo.Route {
240271 var req Req
241272 var resp Resp
242273 return w .PATCHTyped (path , makeHandler (h ), desc , req , resp , m ... )
243274}
244275
245- // 詳細についてはEwGETを見よ
276+ /*
277+ func(echo.Context) (Resp, error)の型をもつhandlerを受け取り、PATCHのAPIを生やす。Responseはstatusとして200、bodyとしてJSONで返す。
278+ */
279+ func EwPATCHNoRequest [Resp any ](w * EchoWrapper , path string , h func (ctx echo.Context ) (Resp , error ), desc Desc , m ... echo.MiddlewareFunc ) * echo.Route {
280+ var resp Resp
281+ return w .PATCHTyped (path , makeHandlerNoRequest (h ), desc , nil , resp , m ... )
282+ }
283+
284+ /*
285+ func(echo.Context, Req) errorの型をもつhandlerを受け取り、PATCHのAPIを生やす。RequestはJSONとしてBindする。Responseはstatusとして204を返す。
286+ */
246287func EwPATCHNoContent [Req any ](w * EchoWrapper , path string , h func (ctx echo.Context , req Req ) error , desc Desc , m ... echo.MiddlewareFunc ) * echo.Route {
247288 var req Req
248289 return w .PATCHTyped (path , makeHandlerNoContent (h ), desc , req , nil , m ... )
249290}
250291
251- // 詳細についてはEwGETを見よ
252- func EwDELETE [Resp any ](w * EchoWrapper , path string , h func (ctx echo.Context ) (Resp , error ), desc Desc , m ... echo.MiddlewareFunc ) * echo.Route {
292+ /*
293+ func(echo.Context) (Resp, error)の型をもつhandlerを受け取り、DELETEのAPIを生やす。Responseはstatusとして200、bodyとしてJSONで返す。
294+
295+ Requestを受け取らないケースでは EwDELETENoRequest を使い、Responseを返さないケースでは EwDELETENoContent を使うこと。
296+ */
297+ func EwDELETE [Req any , Resp any ](w * EchoWrapper , path string , h func (ctx echo.Context , req Req ) (Resp , error ), desc Desc , m ... echo.MiddlewareFunc ) * echo.Route {
298+ var req Req
299+ var resp Resp
300+ return w .DELETETyped (path , makeHandler (h ), desc , req , resp , m ... )
301+ }
302+
303+ /*
304+ func(echo.Context) (Resp, error)の型をもつhandlerを受け取り、DELETEのAPIを生やす。Responseはstatusとして200、bodyとしてJSONで返す。
305+ */
306+ func EwDELETENoRequest [Resp any ](w * EchoWrapper , path string , h func (ctx echo.Context ) (Resp , error ), desc Desc , m ... echo.MiddlewareFunc ) * echo.Route {
253307 var resp Resp
254- return w .DELETETyped (path , makeHandlerNoRequest (h ), desc , resp , m ... )
308+ return w .DELETETyped (path , makeHandlerNoRequest (h ), desc , nil , resp , m ... )
255309}
256310
257- // 詳細についてはEwGETを見よ
311+ /*
312+ func(echo.Context, Req) errorの型をもつhandlerを受け取り、DELETEのAPIを生やす。RequestはJSONとしてBindする。Responseはstatusとして204を返す。
313+ */
258314func EwDELETENoContent [Req any ](w * EchoWrapper , path string , h func (ctx echo.Context , req Req ) error , desc Desc , m ... echo.MiddlewareFunc ) * echo.Route {
259- return w .DELETETyped (path , makeHandlerNoContent (h ), desc , nil , m ... )
315+ var req Req
316+ return w .DELETETyped (path , makeHandlerNoContent (h ), desc , req , nil , m ... )
260317}
261318
262319func (w * EchoWrapper ) Group (prefix string , m ... echo.MiddlewareFunc ) * GroupWrapper {
@@ -359,58 +416,144 @@ func (g *GroupWrapper) DELETETyped(path string, h echo.HandlerFunc, desc Desc, r
359416 return g .Group .DELETE (path , h , m ... )
360417}
361418
362- // 詳細についてはEwGETを見よ
419+ /*
420+ EwGET のGroup版
421+
422+ func(echo.Context) (Resp, error)の型をもつhandlerを受け取り、GETのAPIを生やす。Responseはstatusとして200、bodyとしてJSONで返す。
423+
424+ NOTE: Go1.20時点では、メソッドがtype parameterをもてないので関数として定義されている
425+ */
363426func GwGET [Resp any ](g * GroupWrapper , path string , h func (ctx echo.Context ) (Resp , error ), desc Desc , m ... echo.MiddlewareFunc ) * echo.Route {
364427 var resp Resp
365428 return g .GETTyped (path , makeHandlerNoRequest (h ), desc , resp , m ... )
366429}
367430
368- // 詳細についてはEwGETを見よ
431+ /*
432+ EwPOST のGroup版
433+
434+ func(echo.Context, Req) (Resp, error)の型をもつhandlerを受け取り、POSTのAPIを生やす。RequestはJSONとしてBindする。Responseはstatusとして200、bodyとしてJSONで返す。
435+
436+ Requestを受け取らないケースでは GwPOSTNoRequest を使い、Responseを返さないケースでは GwPOSTNoContent を使うこと。
437+ */
369438func GwPOST [Req any , Resp any ](g * GroupWrapper , path string , h func (ctx echo.Context , req Req ) (Resp , error ), desc Desc , m ... echo.MiddlewareFunc ) * echo.Route {
370439 var req Req
371440 var resp Resp
372441 return g .POSTTyped (path , makeHandler (h ), desc , req , resp , m ... )
373442}
374443
375- // 詳細についてはEwGETを見よ
444+ /*
445+ EwPOSTNoRequest のGroup版
446+
447+ func(echo.Context) (Resp, error)の型をもつhandlerを受け取り、POSTのAPIを生やす。Responseはstatusとして200、bodyとしてJSONで返す。
448+ */
449+ func GwPOSTNoRequest [Resp any ](g * GroupWrapper , path string , h func (ctx echo.Context ) (Resp , error ), desc Desc , m ... echo.MiddlewareFunc ) * echo.Route {
450+ var resp Resp
451+ return g .POSTTyped (path , makeHandlerNoRequest (h ), desc , nil , resp , m ... )
452+ }
453+
454+ /*
455+ EwPOSTNoContent のGroup版
456+
457+ func(echo.Context, Req) errorの型をもつhandlerを受け取り、POSTのAPIを生やす。RequestはJSONとしてBindする。Responseはstatusとして204を返す。
458+ */
376459func GwPOSTNoContent [Req any ](g * GroupWrapper , path string , h func (ctx echo.Context , req Req ) error , desc Desc , m ... echo.MiddlewareFunc ) * echo.Route {
377460 var req Req
378461 return g .POSTTyped (path , makeHandlerNoContent (h ), desc , req , nil , m ... )
379462}
380463
381- // 詳細についてはEwGETを見よ
464+ /*
465+ EwPUT のGroup版
466+
467+ func(echo.Context, Req) (Resp, error)の型をもつhandlerを受け取り、PUTのAPIを生やす。RequestはJSONとしてBindする。Responseはstatusとして200、bodyとしてJSONで返す。
468+
469+ Requestを受け取らないケースでは GwPUTNoRequest を使い、Responseを返さないケースでは GwPUTNoContent を使うこと。
470+ */
382471func GwPUT [Req any , Resp any ](g * GroupWrapper , path string , h func (ctx echo.Context , req Req ) (Resp , error ), desc Desc , m ... echo.MiddlewareFunc ) * echo.Route {
383472 var req Req
384473 var resp Resp
385474 return g .PUTTyped (path , makeHandler (h ), desc , req , resp , m ... )
386475}
387476
388- // 詳細についてはEwGETを見よ
477+ /*
478+ EwPUTNoRequest のGroup版
479+
480+ func(echo.Context) (Resp, error)の型をもつhandlerを受け取り、PUTのAPIを生やす。Responseはstatusとして200、bodyとしてJSONで返す。
481+ */
482+ func GwPUTNoRequest [Resp any ](g * GroupWrapper , path string , h func (ctx echo.Context ) (Resp , error ), desc Desc , m ... echo.MiddlewareFunc ) * echo.Route {
483+ var resp Resp
484+ return g .PUTTyped (path , makeHandlerNoRequest (h ), desc , nil , resp , m ... )
485+ }
486+
487+ /*
488+ EwPUTNoContent のGroup版
489+
490+ func(echo.Context, Req) errorの型をもつhandlerを受け取り、PUTのAPIを生やす。RequestはJSONとしてBindする。Responseはstatusとして204を返す。
491+ */
389492func GwPUTNoContent [Req any ](g * GroupWrapper , path string , h func (ctx echo.Context , req Req ) error , desc Desc , m ... echo.MiddlewareFunc ) * echo.Route {
390493 var req Req
391494 return g .PUTTyped (path , makeHandlerNoContent (h ), desc , req , nil , m ... )
392495}
393496
394- // 詳細についてはEwGETを見よ
497+ /*
498+ EwPATCH のGroup版
499+
500+ func(echo.Context, Req) (Resp, error)の型をもつhandlerを受け取り、PATCHのAPIを生やす。RequestはJSONとしてBindする。Responseはstatusとして200、bodyとしてJSONで返す。
501+
502+ Requestを受け取らないケースでは GwPATCHNoRequest を使い、Responseを返さないケースでは GwPATCHNoContent を使うこと。
503+ */
395504func GwPATCH [Req any , Resp any ](g * GroupWrapper , path string , h func (ctx echo.Context , req Req ) (Resp , error ), desc Desc , m ... echo.MiddlewareFunc ) * echo.Route {
396505 var req Req
397506 var resp Resp
398507 return g .PATCHTyped (path , makeHandler (h ), desc , req , resp , m ... )
399508}
400509
401- // 詳細についてはEwGETを見よ
510+ /*
511+ EwPATCHNoRequest のGroup版
512+
513+ func(echo.Context) (Resp, error)の型をもつhandlerを受け取り、PATCHのAPIを生やす。Responseはstatusとして200、bodyとしてJSONで返す。
514+ */
515+ func GwPATCHNoRequest [Resp any ](g * GroupWrapper , path string , h func (ctx echo.Context ) (Resp , error ), desc Desc , m ... echo.MiddlewareFunc ) * echo.Route {
516+ var resp Resp
517+ return g .PATCHTyped (path , makeHandlerNoRequest (h ), desc , nil , resp , m ... )
518+ }
519+
520+ /*
521+ EwPATCHNoContent のGroup版
522+
523+ func(echo.Context, Req) errorの型をもつhandlerを受け取り、PATCHのAPIを生やす。RequestはJSONとしてBindする。Responseはstatusとして204を返す。
524+ */
402525func GwPATCHNoContent [Req any ](g * GroupWrapper , path string , h func (ctx echo.Context , req Req ) error , desc Desc , m ... echo.MiddlewareFunc ) * echo.Route {
403526 var req Req
404527 return g .PATCHTyped (path , makeHandlerNoContent (h ), desc , req , nil , m ... )
405528}
406529
407- // 詳細についてはEwGETを見よ
530+ /*
531+ EwDELETE のGroup版
532+
533+ func(echo.Context, Req) (Resp, error)の型をもつhandlerを受け取り、DELETEのAPIを生やす。RequestはJSONとしてBindする。Responseはstatusとして200、bodyとしてJSONで返す。
534+
535+ Requestを受け取らないケースでは GwDELETENoRequest を使い、Responseを返さないケースでは GwDELETENoContent を使うこと。
536+ */
408537func GwDELETE [Resp any ](g * GroupWrapper , path string , h func (ctx echo.Context ) (Resp , error ), desc Desc , m ... echo.MiddlewareFunc ) * echo.Route {
409538 var resp Resp
410539 return g .DELETETyped (path , makeHandlerNoRequest (h ), desc , resp , m ... )
411540}
412541
413- // 詳細についてはEwGETを見よ
542+ /*
543+ EwDELETENoRequest のGroup版
544+
545+ func(echo.Context) (Resp, error)の型をもつhandlerを受け取り、DELETEのAPIを生やす。Responseはstatusとして200、bodyとしてJSONで返す。
546+ */
547+ func GwDELETENoRequest [Resp any ](g * GroupWrapper , path string , h func (ctx echo.Context ) (Resp , error ), desc Desc , m ... echo.MiddlewareFunc ) * echo.Route {
548+ var resp Resp
549+ return g .DELETETyped (path , makeHandlerNoRequest (h ), desc , resp , m ... )
550+ }
551+
552+ /*
553+ EwDELETENoContent のGroup版
554+
555+ func(echo.Context, Req) errorの型をもつhandlerを受け取り、DELETEのAPIを生やす。RequestはJSONとしてBindする。Responseはstatusとして204を返す。
556+ */
414557func GwDELETENoContent [Req any ](g * GroupWrapper , path string , h func (ctx echo.Context , req Req ) error , desc Desc , m ... echo.MiddlewareFunc ) * echo.Route {
415558 return g .DELETETyped (path , makeHandlerNoContent (h ), desc , nil , m ... )
416559}
0 commit comments