Skip to content

Latest commit

 

History

History
27 lines (22 loc) · 1.13 KB

README.md

File metadata and controls

27 lines (22 loc) · 1.13 KB

Railway is a simple HTTP Groovy server that supports dynamic page loading. It does so by utilizing Groovy scripts in the root directory.

Assume the path /greet/<name>, where the name parameter will be substituted with one given by the user.

The correspondent Groovy script should be located at <root_directory>/greet.groovy with contents:

import com.sun.net.httpserver.HttpExchange
import it.fulminazzo.railway.ContentHandler
import it.fulminazzo.railway.HTTPCode

static ContentHandler.HTTPResponse handle(HttpExchange httpExchange) {
    def path = httpExchange.requestURI.path
    def matcher = path =~ /(\/greet\/)([A-Za-z]+)/
    if (matcher.find()) return new ContentHandler.HTTPResponse(HTTPCode.OK, matcher.group(1),
                "Hello, ${matcher.group(2)}!")
    else return new ContentHandler.HTTPResponse(HTTPCode.BAD_REQUEST, path,
            "No name provided!"
    )
}

NOTE: this structure is mandatory. The file can be manipulated as the developer pleases, but a method named handle with parameter HttpExchange and return type HTTPResponse will always be required.