タイプスクリプトベースのAPIを構築する


ボトムラインのように.TypesScriptはクールです!
私たちは素晴らしいIDEの提案とヒントと一緒にエラーやバグをより簡単にキャッチできるように、私はtypescriptを繰り返してクールです.後のようにtypescriptのサポートに組み込まれている多くのフレームワークがありますが、foaltsは前線でtypescriptで構築されます.Foraltsは、より堅牢なtypescriptバックエンド工学経験のうちの1つを構築するために、彼らのtypescript支持のために、ORMと他のライブラリを慎重に選びます.
それでは、APIのビルド方法

事前の要件
  • は、NodeJS 10またはより大きい
  • を必要とします

    セットアップ
    プロジェクトを起動したいディレクトリを開いて、次のコマンドを実行してfoalts cliをインストールします.npm install -g @foal/cli次にこのコマンドを使って新しいプロジェクトを生成しますfoal createapp my-api開発セルをコマンドで実行できますnpm run developLocalhostに行く:3001とデフォルトの着陸ページが表示されます.

    ルートの作成
    ルートを作成するには、コントローラが必要です.Ruby on Rails(Ruby)、Masonite(Python)、またはSpring(Java)のように、コントローラはサーバーが要求を受け取るときに特定のURLがどのように処理されるかを決定するメソッドを持つクラスです.
    新しいコントローラを作成するには、次のコマンドを実行します.foal generate controller first-controlerこれは、アプリケーション/コントローラ/の新しいコントローラファイルを作成します
    ファーストコントローラ.コントローラ.TS
    import { Context, Get, HttpResponseOK } from '@foal/core';
    
    export class FirstControlerController {
    
      @Get('/')
      foo(ctx: Context) {
        return new HttpResponseOK();
      }
    
    }
    
  • @ getデコレータは、メソッドをエンドポイントへのGETリクエストの1つとして指定するのを使用します.
  • FOOはその方法であり、それは
  • でありえる
  • CTXは我々が/cheese/:helloからURLパームctx.request.paramsを引くことができる文脈、?cheese=goudaからより多くのURL質問ctx.request.queryとより多くです!
  • foaltsはレスポンスの状態を変更する多くのメソッドを持っています.このメソッドを渡してJSONを返すことができます.
  • ルートを変更しましょう.
    import { Context, Get, HttpResponseOK } from '@foal/core';
    
    export class FirstControlerController {
    
      @Get('/')
      foo(ctx: Context) {
        return new HttpResponseOK({Hello: "World"});
      }
    
    }
    
    その後、我々はアプリケーションに表示されるようにアプリのコントローラにこれを配線する必要があります.
    src/app/app.コントローラ.TS
    
    import { Get, controller, IAppController, HttpResponseOK } from '@foal/core';
    import { createConnection } from 'typeorm';
    
    import { ApiController, FirstControlerController } from './controllers';
    
    export class AppController implements IAppController {
      subControllers = [
        controller("/first", FirstControlerController),
        controller('/api', ApiController),
      ];
    
      async init() {
        await createConnection();
      }
    }
    
    
  • SubControllerクラスプロパティを使用すると、サブコントローラを指定できます.AppControllerはグローバルコントローラです、そして、我々は現在すべての「最初の」要求
  • を処理する我々の最初のコントローラにサブコントローラを作りました

  • CREATE CONNECT関数はデータベース接続を作成します.FOALはTypeScriptにフォーカスされたORMであるtypeRMを使用します.configフォルダの設定ファイルのデータベース設定を変更できます.
  • デフォルト.JSONは、デフォルトのアプリケーション設定
  • です
  • の開発JSON開発環境
  • の設定です
  • の生産.JSONは生産環境の設定242479182です
  • テスト.JSONは、テスト
  • を実行するときに使用する設定です

    ルートのテスト
    それがnpm run devでないならば、あなたのサーバーを走らせてください
    あなたはlocalhost:3001/first/で我々のコントローラからルートを見ることができるはずです
    多田!あまりにも難しい、右!

    その他の機能
  • Foolは我々の完全なAPIをロールバックするのを助けるために他の発電機を持っています.そして、それは容易にあなたのデータベースモデル/実体とコントローラから役割を助けます.
  • ビルトインJWT認証機能は、Authを加えて、あなたのルートを超簡単に保護します.
  • あなたがRuby on Rails/春のようなバッテリーがノードとタイプスクリプトの経験を含むならば、Foraltsはあなたの背中を持ちました.