Thanks to the simplicity, elegance, strong typing and philosophy of both solutions, FSharp and ServiceStack are quickly becoming a popular choice for creating friction-less REST and message-based remote services.
.NET Core F# Project​
You can create a new .NET Core F# project in a new empty directory using the x dotnet tool with:
$ dotnet tool install --global x
$ mkdir ProjectName && cd ProjectName
$ x mix init-fsharp
$ dotnet run
Which will download the init-fsharp Gist to your local directory
where you can use its dep-free /index.html and its
JsonServiceClient
to call its /hello API:
Complete F# Console Self-Host Example​
For .NET Framework you can use the AppSelfHostBase
to create a stand-alone self-hosted Console App:
open System
open ServiceStack
type Hello = { mutable Name: string; }
type HelloResponse = { mutable Result: string; }
type HelloService() =
interface IService
member this.Any (req:Hello) = { Result = "Hello, " + req.Name }
//Define the Web Services AppHost
type AppHost =
inherit AppSelfHostBase
new() = { inherit AppSelfHostBase("Hi F#!", typeof<HelloService>.Assembly) }
override this.Configure container =
base.Routes
.Add<Hello>("/hello")
.Add<Hello>("/hello/{Name}") |> ignore
//Run it!
[<EntryPoint>]
let main args =
let host = if args.Length = 0 then "http://*:1337/" else args.[0]
printfn "listening on %s ..." host
let appHost = new AppHost()
appHost.Init() |> ignore
appHost.Start host |> ignore
Console.ReadLine() |> ignore
0
Community Resources​
- SignalR + Servciestack with F# hosted on Azure by @kunjee
- Servicestack F# template. Starting from the Start by @kunjee
- Simple.Web and ServiceStack F# Templates by @dmohl
- Web services using ServiceStack framework in F# by @chirdeeptomar
- Last-Fi (F#, Raspberry Pi, Last.Fm, FunScript and ServiceStack) by @pezi_pink
- ServiceStack, With F# on Linux (inc Vagrant / Puppet) by @mattdrivendev
- Declarative authorization in REST services in SharePoint with F# by @sergey_tihon
- ServiceStack and F# on Heroku (GitHub) by @kunjee
- First hand experience with F# by @d4dilip
- ServiceStack: New API – F# Sample by @sergey_tihon
- Async, Cached Twitter API Proxy in F# by @demisbellot
- F# Web Services on any platform in and out of a web server! by @demisbellot