Skip to content
Script pack for web api
Branch: dev
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
samples Cleaning up fluent formatter syntax and adding sample with formatter Aug 1, 2014
src/ScriptCs.WebApi Upgrading to 0.16.1 and getting rid of common logging Jun 19, 2016
.gitignore
LICENSE.md
README.md
ScriptCs.WebApi.sln Upgrading to 0.16.1 and getting rid of common logging Jun 19, 2016

README.md

scriptcs-webapi

Web API Script Pack

What is it?

Makes using ASP.NET Web API's self host with scriptcs easy as cake, much easier than [this] (https://github.com/scriptcs/scriptcs-samples/tree/master/webapihost) :)

Highlights:

  • Creates a pre-configured OWIN self host with the default routes already added.
  • Supports configuring the OWIN pipeline
  • Write your controllers as scripts
  • Automatically imports common web api namespaces for you.

Getting started with Web API using the pack

  • Create a new folder for your script i.e. c:\hellowebapi and change to it.
  • Install the Web API script pack scriptcs -install -pre ScriptCs.WebApi2
  • Create a start.csx and paste the code below
using System.Dynamic;

public class TestController : ApiController
{
	public dynamic Get() {
		dynamic obj = new ExpandoObject();
		obj.message = "Hello from Web Api";
		return obj;
	}
}

var webapi = Require<WebApi>();

var server = webapi.
	Configure(typeof(TestController)).
	UseJsonOnly().
	Start("http://localhost:8080");

Console.WriteLine("Listening...");
Console.ReadLine();
server.Dispose();
  • Running as admin type scriptcs start.csx -modules mono on Windows or scriptcs start.csx on Mac/Linux to launch the app.
  • Open a browser to "http://localhost:8080/api/test";
  • That's it, your API is up!

Customizing

You can configure the OWIN host by passing in an Action<IAppBuilder> to the Configure method

var server = webapi.
	Configure(
		typeof(TestController),
		builder=> {
		  builder.Use<MyMiddleware>();
		}
	).
	Start("http://localhost:8080");
You can’t perform that action at this time.