我有一个在 .net core 2.2 中运行的 F# WebAPI。此应用程序使用 Giraffe。
路由是按照此处描述的方式设置的。一个例子:
let webApp =
choose [
GET >=>
choose [
route "/" >=> text "index"
route "/ping" >=> text "pong"
route "/error" >=> (fun _ _ -> failwith "Something went wrong!")
route "/login" >=> loginHandler
route "/logout" >=> signOut authScheme >=> text "Successfully logged out."
route "/user" >=> mustBeUser >=> userHandler
]
route "/car" >=> bindModel<Car> None json
route "/car2" >=> tryBindQuery<Car> parsingErrorHandler None (validateModel xml)
RequestErrors.notFound (text "Not Found") ]
我们有一个健康检查,我们想从应用程序内部运行,并针对这些路由运行 - 但是我们不想对我们的 API 进行外部调用(例如使用 HttpClient 或类似的)。
是否可以在内部调用这些路由——而不是简单地调用它们被路由到的函数?理想情况下,我们希望确保我们的路由也能在所有端点上正常工作。
当然 - 我们已经尝试过从外部获取 HttpClientFactory -> HttpClient,但它会导致 API 密钥、外部路由、多环境等问题。
任何想法都会受到欢迎!