マガジンのカバー画像

つくってつかって! よちよち★Drogonフレームワーク

14
Rustを超える超々高速駆動のMVCフレームワーク「Drogon」 開発者が某大陸の方だから怪しい?C++は難しい? いえ、それを補って余りある性能がこのフレームワークにはある…
運営しているクリエイター

記事一覧

DrogonとRaspberryPiでLチカ

DrogonとRaspberryPiでLチカ

皆様こんにちは、あるいはこんばんは、みじんこきなこです。
さて今回は、やろうやろうと思っていてやってこなかった、RaspberryPiとDrogon、そしてWiringPiを使ってLチカを行ってみます。
以前の記事でも触れたとおり、C++で書かれたDrogonは、本格的なMVCフレームワークの機能を有しているにもかかわらず、駆動時に消費するハードウェアリソースが非常に少ないため、IoT機器との親和

もっとみる
Drogonを使って行政のAPIを叩いてみよう

Drogonを使って行政のAPIを叩いてみよう

皆様こんにちは、あるいはこんばんは、みじんこきなこです。

前回の記事投稿からすっかり時間が空いてしまいましたが、
今回はDrogonのHttpClientクラスを使用して行政のAPIを叩いてデータを取得してみます。

今回使用するHttpClientクラスは、2022年11月時点では公式のWikiに詳細な使用方法の解説が存在しておらず、
使用するには若干のソースコード読解とDocsforgeで作

もっとみる
[Drogon]Login画面の作り方

[Drogon]Login画面の作り方

こんにちは、もしくはこんばんは皆様。みじんこきなこです。
さて、前回の実験でOpenSSLを使用して暗号化ハッシュを取得する方法を紹介しましたが、今回はそれを利用したログイン画面の作り方について解説していきます。

ちなみに今回のプロジェクトはちょっと規模が大きくなります。写経のように移すのは大変だと思いますので、適宜コピペして使ってみてくださいね。
それでは参りましょう。

データベースを用意す

もっとみる
[Drogon]実験!OpenSSLでSHA-2 512bit ハッシュ値を得る

[Drogon]実験!OpenSSLでSHA-2 512bit ハッシュ値を得る

皆様こんにちはもしくはこんばんは、みじんこきなこです。

今日はまた次回の記事につなげるために、実験をしていきたいと思います。

タイトルからわかる通り、今回はOpenSSLの機能を使って、SHA-2 512bit 暗号化ハッシュを生成する実験を行います。

暗号化ハッシュというのは、あるデータに単純な計算を行い生成される、ほんの少しの差異しかないデータでも全く異なる値となる数値の羅列です。
ネッ

もっとみる
[Drogon]フィルタの適用

[Drogon]フィルタの適用

こんにちは、もしくはこんばんは、みじんこきなこです。

このよちよち★Drogonフレームワーク一連の記事で紹介しているDrogonは、Webアプリケーションを作成するフレームワークです。

そして、Webアプリケーションは多くの場合インターネットを通して不特定多数のユーザに公開して、サービスを提供することになるのですが、残念ながらインターネットを利用しているユーザが必ずしも善良なユーザとは限りま

もっとみる
[Drogon]実験!HTTPリクエスト

[Drogon]実験!HTTPリクエスト

さて今回は、次に書こうと思っている記事の前情報のために、実験を一つ行いたいと思います。

Drogonのコントローラで、パスに対して紐付けられるメソッドには最低限書かなければならないシグネチャあります。
それがこの二つです。

const HttpRequestPtr& req

std::function<void (const HttpResponsePtr &)> &&callback

r

もっとみる
[Drogon]フレームワークのインストール

[Drogon]フレームワークのインストール

社内のアプリケーション開発を行う上で、様々なフレームワークの検討を行いました。その中でも私のお気に入りのフレームワークである、DrogonというWebフレームワーク環境を構築する手順についてまとめました。

DrogonはWeb分野では珍しく、C++を使用して開発を行うことのできるWebフレームワークです。
その特徴は、C++を使用するだけあってとにかく駆動が高速であることとされています。

Dr

もっとみる
[Drogon]でプロジェクトを作る

[Drogon]でプロジェクトを作る

前回の記事の中で、drogonフレームワークのインストールについて解説しました。

今回は、drogonフレームワークを使用して実際にプロジェクトを作成し、examplesの中にあるhelloworldと同じものを作成、動作させていきたいと思います。

drogon_ctl

Drogonフレームワークのビルドが成功していれば、drogon_ctl コマンドが使用可能となっているはずです。入ってい

もっとみる
[Drogon]DBからORMを実装する

[Drogon]DBからORMを実装する

今回はDrogonフレームワークを使用してRESTfulAPIを作成する手順について解説します。

Drogonフレームワークには接続したデータベースの構造を基にして、C++で作成されたモデルクラスを生成してくれる機能があります。
この機能のことをORM(Object Relation Mapping)と言います。

通常ORMで生成したクラスを使用するには、コントローラのソースコードで生成された

もっとみる
[Drogon]ORMを使用しないDBアクセス

[Drogon]ORMを使用しないDBアクセス

本日はDrogonフレームワークのORM(Object Relation Mapping)を使用せずに、コントローラから直接データベースのデータを取り出し、Viewの画面にデータを表示していきます。

Drogonフレームワークは drogon_ctl コマンドのサブコマンド create model を使用して、データベースのテーブル構造からC++のオブジェクトやRestfulAPIを構築する機

もっとみる
[Drogon]DbClientのインターフェースについて

[Drogon]DbClientのインターフェースについて

前回、データベースに独自にアクセスしてデータを取ってくる仕組みを解説した際に、DbClientクラスの execSqlAsync インターフェースについては解説しませんでした。

今回はそれについて参考程度に解説します。

execSqlAsync

execSqlAsyncは端的に書けばスレッド立て逃げインターフェースです。

このインターフェースは、データベースへアクセス後、
第二引数のコール

もっとみる
[Drogon]HTTPSimpleControllerでボタンが押された回数を数える

[Drogon]HTTPSimpleControllerでボタンが押された回数を数える

前回の記事では、コントローラで受け取ったパラメータを基に、ViewでオーソドックスなHelloを表示するプログラムを例示しました。

しかし多くのアプリケーションでは、画面に表示されたページから何らかのパラメータを受け取り、コントローラで何らかの処理を行って結果で表示を更新するという動きが大半だと思います。

今回はボタンをクリックされた回数を数える簡単なサンプルで、その動作の実現方法を解説してい

もっとみる
[Drogon]JavaScriptとの連携とファイルアップロード

[Drogon]JavaScriptとの連携とファイルアップロード

さて今回は、ファイルのアップローダを作っていきたいと思います。

Drogonのexampleには、ファイルアップロードのサンプルもあるのですが、
これはルーティングなどのコードがmain.ccにべた書きされており、初学者が実用に向けて応用するには少しハードルが高いです。

そこで、実際にDrogonのビューとjavascript、そしてコントローラを連携させて、ファイルのアップロードを受け付ける

もっとみる
[Drogon]CSSを利用してみる

[Drogon]CSSを利用してみる

Drogonは、リリースされて間もないこともあり、例えばVue.jsのNuxt.jsのような、見た目の部分をどうにかしてくれるようなフレームワークがありません。
しかし、せっかくサービスを作って公開するのであれば、ある程度見栄えのする内容にしたいと思うはずです。

そこで今回はDrogonフレームワークで作成したページにCSSを適用する手順を、静的コンテンツと動的コンテンツ双方について書いていきた

もっとみる