Skip to content
Open
Changes from 1 commit
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
67fe83a
Add OpenAPI support for AutoRoute JSON views
vincentcombey-design Mar 20, 2026
65cd110
Fix OpenAPI review findings
vincentcombey-design Mar 20, 2026
27c224c
Add Swagger UI OpenAPI routes
vincentcombey-design Mar 20, 2026
fb77e2a
Add openapi3 to ihp Nix derivation
vincentcombey-design Mar 20, 2026
0e8d557
Add regression test for Api action names
vincentcombey-design Mar 20, 2026
f881ab9
Add OpenAPI request body docs
vincentcombey-design Apr 7, 2026
0b0b6bf
Export request body docs for OpenAPI
vincentcombey-design Apr 7, 2026
77389c8
Fix OpenAPI test imports
vincentcombey-design Apr 7, 2026
a118f67
Remove redundant OpenAPI test import
vincentcombey-design Apr 7, 2026
93110cc
Tie OpenAPI request bodies to actions
vincentcombey-design Apr 7, 2026
d807ab0
Simplify action request body docs
vincentcombey-design Apr 7, 2026
00649fe
Remove loose OpenAPI request body helper
vincentcombey-design Apr 7, 2026
2e3c0e8
Tighten typed action request body decode
vincentcombey-design Apr 7, 2026
c97baf8
Decode request bodies by registered type
vincentcombey-design Apr 7, 2026
7e81813
Store request body type reps concretely
vincentcombey-design Apr 7, 2026
2a01d93
Add OpenAPI action doc setters
vincentcombey-design Apr 23, 2026
52bd62e
Fix JsonView OpenAPI docs after rebase
vincentcombey-design Apr 24, 2026
5e10096
Add typed OpenAPI action definitions
vincentcombey-design Apr 24, 2026
2088e9e
Make OpenAPI endpoint definitions authoritative
vincentcombey-design Apr 24, 2026
d738674
Remove ActionDefinition runner boilerplate
vincentcombey-design Apr 24, 2026
7b75149
Document supported custom OpenAPI routes
vincentcombey-design Apr 24, 2026
2546e21
Infer OpenAPI request bodies from handlers
vincentcombey-design Apr 24, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Remove loose OpenAPI request body helper
  • Loading branch information
vincentcombey-design committed Apr 24, 2026
commit 00649fea03fefa8ad65e794d925e33836a3fa65b
37 changes: 15 additions & 22 deletions ihp/IHP/RouterSupport.hs
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ module IHP.RouterSupport (
setOpenApiDescription,
setOpenApiTags,
setOpenApiOperationId,
setOpenApiRequestBody,
decodeActionRequestBody,
runAction,
get,
Expand Down Expand Up @@ -248,8 +247,21 @@ actionDocForRequestBody ::
) =>
ActionDoc controller
actionDocForRequestBody =
actionDocFor @actionName @view @controller
|> setOpenApiRequestBody @(OpenApiRequestBody controller actionName)
ActionDoc
{ actionDocName = cs (symbolVal (Proxy @actionName))
, actionDocSummary = Nothing
, actionDocDescription = Nothing
, actionDocTags = []
, actionDocOperationId = Nothing
, actionDocView = Proxy @view
, actionDocTypedJson = JSON.toJSON . ViewSupport.jsonTyped
, actionDocRequestBody =
Just
OpenApiRequestBodyDoc
{ requestBodyRequired = openApiRequestBodyRequired @controller @actionName
, requestBodySchema = Proxy @(OpenApiRequestBody controller actionName)
}
}
{-# INLINE actionDocForRequestBody #-}

setOpenApiSummary :: Text -> ActionDoc controller -> ActionDoc controller
Expand Down Expand Up @@ -308,25 +320,6 @@ setOpenApiOperationId operationId ActionDoc{actionDocName, actionDocSummary, act
}
{-# INLINE setOpenApiOperationId #-}

setOpenApiRequestBody :: forall body controller. (ToSchema body) => ActionDoc controller -> ActionDoc controller
setOpenApiRequestBody ActionDoc{actionDocName, actionDocSummary, actionDocDescription, actionDocTags, actionDocOperationId, actionDocView, actionDocTypedJson} =
ActionDoc
{ actionDocName
, actionDocSummary
, actionDocDescription
, actionDocTags
, actionDocOperationId
, actionDocView
, actionDocTypedJson
, actionDocRequestBody =
Just
OpenApiRequestBodyDoc
{ requestBodyRequired = True
, requestBodySchema = Proxy @body
}
}
{-# INLINE setOpenApiRequestBody #-}

decodeActionRequestBody ::
forall controller actionName.
( HasOpenApiRequestBody controller actionName
Expand Down