FSharp.Data (JSON) integration package for FsHttp
$ dotnet add package FsHttp.FSharpData
FsHttp is a "hackable HTTP client" that offers a legible style for the basics while still affording full access to the underlying HTTP representations for covering unusual cases. It's the best of both worlds: Convenience and Flexibility.
.http files, VSCode's REST client, Postman, and other tools as an interactive and programmable playground for HTTP requests.👍 Postman? ❤️ FsHttp! https://youtu.be/F508wQu7ET0
Allow us a bit of advertising for our PXL Clock! It's a fun device, made with ❤️ - and it's programmable almost as easy as you write requests with FsHttp :)
Find out more:
#r "nuget: FsHttp"
open FsHttp
http {
POST "https://reqres.in/api/users"
CacheControl "no-cache"
body
jsonSerialize
{|
name = "morpheus"
job = "leader"
|}
}
|> Request.send
#r "nuget: FsHttp"
using FsHttp;
await Http
.Post("https://reqres.in/api/users")
.CacheControl("no-cache")
.Body()
.JsonSerialize(new
{
name = "morpheus",
job = "leader"
}
)
.SendAsync();
As this is a recurring issue:
FsHttp emits console logs per default. They can be disabled by putting this line before any request is made:
FsHttp.Fsi.disableDebugLogs ()
.Net SDK:
You need to have a recent .NET SDK installed, which is specified in ./global.json.
Build Tasks
There is a F# build script (./build.fsx) that can be used to perform several build tasks from command line.
For common tasks, there are bash scripts located in the repo root:
./test.sh: Runs all tests (sources in ./src/Tests).
./test.sh --filter Name~'Response Decompression'./docu.sh: Rebuilds the FsHttp documentation site (sources in ./src/docs)../docu-watch.sh: Run it if you are working on the documentation sources, and want to see the result in a browser../publish.sh: Publishes all packages (FsHttp and it's integration packages for Newtonsoft and FSharp.Data) to NuGet.
./src/Directory.Build.props and keep the file up-to-date.