Swiftの高速で安全なREST?

iOS開発者として、私は常に他の言語を学ぶことなくバックエンドの世界に飛び込みたいと思っていました。 今、Vaporのおかげで、私の夢が実現し、誰もがサーバーとクライアントで1つの言語を使用できるようになりました。



画像

多くの人は、Swiftが1つのエコシステムのみに焦点を当てているという事実のため、Swiftに未来はないと考えていますが、言語が現在1年間オープンソースであるという事実を省略し、その強さを信じないために「カラス」を続けています。 この間、この言語はかなりの人気を得ており、開発者はさまざまなプラットフォームとテクノロジーに実装しようとしています.Silft for .NETとAndroidでSilverのおかげで書くことができるようになり、 Vaporを含むSwiftのバックエンドを作成するためのフレームワークが登場します



Vaporでは、HTTPまたはWebSocketを使用してWebアプリケーション、サイト、APIを作成できます。 開発者によると、このフレームワークは、RubyおよびPHPで作成された他の一般的なフレームワークよりも最大100倍高速です。 言葉ではなく、行為によって 。 このフレームワークを「感じ」、Svaftの下でSwiftでデモHTTP APIを書くことをお勧めします(これはチュートリアルではありません。私の目標はあなたに興味を持ってこの素晴らしいプロジェクトを紹介することです)



インストールは非常に簡単で、 リンクから見つけることができ、問題はないはずです。 インストールが成功したら、ターミナルを開いて次のコマンドを入力します。



vapor new HelloHabr
      
      





画像






おめでとうございます、新しいプロジェクトが正常に作成されました。 これで、エクスプローラーでそれを開き、そこでSources / App / main.swiftファイルを見つけて任意のテキストエディターで書き込み、ターミナルを使用するたびにサーバーを保存および再起動できますが、構文の強調表示、ブレークポイント、Xcodeによる通常のデプロイに関心があります。 プロジェクトのあるディレクトリに行きましょう:



 cd HelloHabr
      
      





次のコマンドを使用して、新しいXcodeプロジェクトを生成できます。



 vapor xcode
      
      





最後に、同意するXcodeを実行するように求められます。 プロジェクトをコンパイルして、何が起こるか見てみましょう。 最初のコンパイルには少し時間がかかる場合がありますが、これは主にファイルのインデックス付けとサーバーの起動が原因です。 正常に完了したら、ブラウザを開き、ローカルサーバーのアドレスに移動して、実際に機能することを確認します。



画像






前述のmain.swiftファイルを開き、パラメーターを使用して最も単純なGETリクエストを処理しましょう。



 drop.get("greeting") { req in guard let name = req.data["target"]?.string else { return "Hello!" } return "Hello, \(name)!" }
      
      





Swiftに精通している人にとっては疑問はないと思います。Vapourはクロージャに基づいて機能し、非常に簡潔で便利に見えます。 これで、要求に応じて目的のパラメーターを指定してサーバーに接続し、応答を取得できます。



画像






JSONの最新情報 コードにコードを追加して、より多くの情報を取得してみましょう。



 drop.get("info") { req in let date = Date() let calendar = Calendar.current let hours = calendar.component(.hour, from: date) let minutes = calendar.component(.minute, from: date) let seconds = calendar.component(.second, from: date) return try JSON(node: [ "place" : "habrahabr", "framework" : "vapor", "time" : "\(hours):\(minutes):\(seconds)" ]) }
      
      





プロジェクトをコンパイルし、サーバーにリクエストを送信します。返品内容を確認します。



画像






すばらしいです。これに応じて、通常のJSONを取得します。JSONを使用して、アプリケーションでデータを解析および使用できます。 一般に、Vaporには多くの公式ドキュメントがあります。サーバーのセットアップ、オンザフライでHTMLを生成する機能、WebSocketとセッションの使用方法について詳しく知ることができます。 また、 Vapor Universityの開発者からのリソースもあり、そこから多くの情報、比較、チュートリアルを見つけることができます。



VaporはmacOSおよびUbuntuと互換性があり、Herokuでアプリケーションをホストしたり、プロジェクトでMySQL、SQLite、MongoDBなどを使用したりできます。 Slackチャンネルに参加して、プロジェクトを改善するためのオプションを提供したり、質問したり、クリエイターの作品に感謝したりしてください。



一般的に、このプロジェクトは非常に野心的であり、急速に発展しています。Vaporの作成者は、フルスタックになる素晴らしい機会を与えてくれます。 ご清聴ありがとうございました、私はあなたに興味を持ったことを願っています。



All Articles