Библиотека веб-сервера F # - PullRequest
8 голосов
/ 23 сентября 2010

Есть ли библиотека веб-сервера для F #, похожая на SimpleHTTPServer в Python?

Установка полного сервера, такого как IIS, излишня для того, что я хочу, - это простое приложение, которое можно запрашивать с помощью веб-браузера, эффективно используя HTTP в качестве метода мониторинга.В идеале запрос к адресу /engines/id/state должен соответствовать функции get_state(engine_id), которую я предоставляю.

Ответы [ 3 ]

12 голосов
/ 23 сентября 2010

Служба собственного размещения WCF - неплохое начало;вот маленький для начала:

open System
open System.IO 
// add reference to these two guys, need .NET full (not client profile)
open System.ServiceModel
open System.ServiceModel.Web

[<ServiceContract>]
type MyContract() =
    [<OperationContract>]
    [<WebGet(UriTemplate="{s}/{t}")>]
    member this.Get(s:string, t:string) : Stream =
        let html = sprintf @"
<!DOCTYPE HTML PUBLIC ""-//W3C//DTD HTML 4.0 Transitional//EN"">
<html><head></head><body>Called with '%s' and '%s'</body></html>" s t
        upcast new MemoryStream(System.Text.Encoding.UTF8.GetBytes(html))

let Main() =
    let address = "http://localhost:64385/"
    let host = new WebServiceHost(typeof<MyContract>, new Uri(address))
    host.AddServiceEndpoint(typeof<MyContract>, new WebHttpBinding(), "") 
        |> ignore
    host.Open()
    printfn "Server running at %s" address
    printfn "Press a key to close server"
    System.Console.ReadKey() |> ignore
    host.Close()

Main()
// now go hit 
// http://localhost:64385/foo/42
// in your browser
4 голосов
/ 23 сентября 2010

Я вообще не смотрел на это, но, возможно, взглянул на

https://github.com/SuaveIO/suave/blob/master/README.md

Suave - это простая веб-разработка F # библиотека, предоставляющая легкую сеть сервер и набор комбинаторов для манипулировать потоком маршрута и задачей Состав.

1 голос
/ 23 сентября 2010

Взгляните на frack (интерфейс в стиле Rack) и, если вам нужен более приятный синтаксис, frank (который построен поверх frack).

Там также Каяк , он написан на C #, но вы можете легко использовать его из F #.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...