HTTP

Crystal HTTP Routing

HTTP Routing

Crystal HTTP routing uses Kemal for defining endpoints.

Introduction to Kemal

Kemal is a popular web framework for Crystal, known for its simplicity and speed. It is designed to make HTTP routing effortless and efficient. By defining endpoints in Kemal, developers can easily manage how their Crystal applications respond to different HTTP requests.

Setting Up Kemal

To begin using Kemal for HTTP routing in Crystal, you need to first install the Kemal shard. You can add it to your project's shard.yml file:

After adding Kemal to your dependencies, run shards install to fetch and install the shard. Now, you're ready to create your first Kemal application.

Defining Routes in Kemal

Routes in Kemal are defined to handle specific HTTP methods and endpoints. Here's a simple example demonstrating how to define a basic route in Kemal:

In this example, we define a route that responds to GET requests at the root path /. When a user accesses this endpoint, the server responds with "Hello, World!". The Kemal.run method starts the server, listening for incoming requests.

Handling Different HTTP Methods

Kemal allows you to easily handle different HTTP methods by using corresponding methods like get, post, put, patch, and delete. Here is an example of handling a POST request:

In this example, a POST request to the /submit endpoint will return a response that includes the data sent in the request. The env object provides access to the request's parameters.

Parameter Handling

Kemal also supports dynamic route parameters, allowing routes to capture values from the URL path. Here's how you can define a route with a parameter:

When a request is made to /hello/John, the server responds with "Hello, John!". The :name in the route definition acts as a placeholder for any value passed in that part of the path.

Conclusion

Kemal provides a robust and easy way to handle HTTP routing in Crystal applications. By defining clear and concise routes, developers can efficiently manage how their applications interact with clients. Whether handling GET, POST, or other HTTP methods, Kemal offers the flexibility needed to build dynamic web applications.

Previous
HTTP Client