Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
1
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

@newta

CeylonでHTTPサーバを作ってみる

前回 はJavaのクラスを使って
HTTPサーバを作りましたが
今回はCeylonのモジュールのみでHTTPサーバを作ってみます。

モジュール設定に追加

まずはモジュール設定ににceylon.netを追加します。


module com.hello.ceylonserver "1.0.0" {
    import ceylon.net "1.0.1";
}

今回は一行だけですね。

ではCeylonコード

import ceylon.io {
    SocketAddress
}
import ceylon.net.http.server {
    Endpoint,
    Response,
    Request,
    newServer,
    startsWith
}

void runServer() {

    value server = newServer {

        Endpoint {

            path = startsWith("/hello");

            service(Request request, Response response) =>
                    response.writeString("hello world");
        }
    };

    server.start(SocketAddress("localhost", 8080));
}

こんな感じでしたー。

シンプルですね。

特に説明無くても分かっちゃいますね。

一番べたにいろんなパスを追加するにはEndpointを複数渡してあげればOKです。

import ceylon.io {
    SocketAddress
}
import ceylon.net.http.server {
    Endpoint,
    Response,
    Request,
    newServer,
    startsWith
}

void runServer() {

    value server = newServer {

        Endpoint {

            path = startsWith("/hello");

            service(Request request, Response response) =>
                    response.writeString("hello world");
        }
        ,
        Endpoint {
            path = startsWith("/ceylon");

            service(Request request, Response response) =>
                    response.writeString("hello ceylon");

        }
    };

    server.start(SocketAddress("localhost", 8080));
}


こんな感じにすると

http://localhost:8080/ceylon

にアクセスすると

hello ceylon

が表示されます。

もちろんEndpointを追加するのではなく
受け取った後に処理を分岐するようにしても良いかと思います。

自由ですね。

シンプルにHTTPサーバも作れちゃいます。
どうでしょ?

Ceylon面白いかもしれないです。

今回はまだ説明していない呼び出し方法を使ってしまいました。
まだ良く分からないかもって人は
その辺は 次回 に書いているので見てみてね。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
1
Help us understand the problem. What are the problem?