Create your own Mini Web Server in F#
4.4 (16 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
115 students enrolled

Create your own Mini Web Server in F#

Learn the design principles of Suave library using Functional-First Programming with F#
4.4 (16 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
115 students enrolled
Created by Tamizhvendan S
Last updated 5/2017
English [Auto-generated]
Price: $39.99
30-Day Money-Back Guarantee
This course includes
  • 1 hour on-demand video
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to 4,000+ top Udemy courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • Functional-First Programming with F#
  • Internals of the Suave, a popular web library in F#
  • Application of Combinator Pattern
  • Three Step Approach - An effective technique to develop applications using Functional Programming
  • This course aimed at students with beginner to intermediate skill in F#, basic understanding of the F# syntax and a light functional understanding would be beneficial.

In this latest course from FSharp.TV, we are going to learn Functional-First Programming with F# and explore what it takes to build a web server library in F#. 

How has the course been structured?  

We all know reading the source code of a widely used library/project will help us to learn a programming language better. But how about learning a language by (re)building the project itself from the ground up? Sounds interesting, isn't it? 

In this course, we are going to build a minimal version of the Suave library, a popular web development library in F#. 

We will be creating the library by focusing on one requirement at a time, and evolve it incrementally.

Note: To get most out of this course, code side by side with the videos and experience the essence of functional programming.

What is Suave?

Suave, a simple web development library in F#. It provides a lightweight, non-blocking web server and a set of combinators to manipulate route flow and task composition. The non-blocking I/O model is efficient and suitable for building fast, scalable network applications.

By Completing this course, You will learn

  • Three-Step Approach - A useful technique to develop applications using Functional Programming
  • A real world application of Combinator Pattern
  • Internals of the Suave library
  • Last but not the least, you are going to experience how to put the pieces together and build a complete project using functional programming principles and techniques
Who this course is for:
  • Anyone who wants to wants to apply functional programming in real world
  • Anyone that wants to learn the internals of serving data over HTTP
Course content
Expand 15 lectures 53:26
+ Getting Started
15 lectures 53:26

This video introduces the Author and his experiences in using F# in production. He also explains how why he has created this course and how you can approach this video tutorial to get the most out of it.

Preview 00:43

This video will provide an overview of what to expect from the course, what you will be creating and prerequisites.

Preview 01:58

This video presents three characters roleplaying in the development of MiniSuave

Preview 01:23

In this video, we will be implementing our first function "OK" to enable Mark to send a response with the status code "Ok".

Implementing HTTP OK Response Handler

This video adds two more functions to send Internal Error and Not Found responses.  It also teaches how to remove duplicate code using partial application.

Preview 03:36

We will learn how to implement request filters to send responses only if the HTTP method matches. 

Adding Request Filters

During the previous video, we learned how to filter requests based on HTTP methods. Now, we'll be extending it to filter based on resource path.

Adding Path Filter

The implementation of request filters has broken the response function that we have implemented in the introductory videos. So, let's spend some time to fix it.

Fixing Broken Parts

In this video, we will be extending the MiniSuave library by adding an API to deal with headers in the Response. 

Adding Response Header

How about some time off to reflect? In this video, we will evaluate our MiniSuave design and see how can we make it better. 

Revisiting MiniSuave APIs

Function Composition is an integral part of functional programming. This video will help us to understand what we need to change in MiniSuave to enable Function Composition

Preview 05:05

In this video, we will be making a significant amount of changes in MiniSuave to make it elegant and easier to use.

Composing WebParts

We need to handle multiple kinds of requests in a web application. But MiniSuave is not yet designed for it. Let's add a new function "Choose" to make it happen.

Adding Choose

This video explains about the combinator pattern and how it has been applied in MiniSuave

Combinator Pattern

Congratulations for completing the course. Let's see where you can go from here. 

What's Next