编程语言
首页 > 编程语言> > WebAPI和Node

WebAPI和Node

作者:互联网

在这篇文章中,您将学习一种在node中实现RESTful的简单方法,首先为account添加一个新控制器,获取可用帐户列表,更新帐户,最后获取帐户。

已经有一些库这样做了。我不打算替换它,只是制作一些疯狂的代码。如果我们将来需要一些技巧来解决我们的问题,希望这可以帮助我们。

GitHub - techcoaching/node_controller查看来自github的代码。

在可视化代码中打开这个,我们可以看到:

就几个文件,让我解释一下:

let option:ICreateApplicationArg=<ICreateApplicationArg>{
    type:ApplicationType.NODE_EXPRESS
};

let routeConfigs:Hashtable<IRouteConfig>=BaseController.getRouteConfigs(CONTROLLERS);
let app:IApplication=ApplicationFactory.create(option);
app.configRoutes(routeConfigs);
app.start();

运行“npm install”,这将从npm下载必要的包。

运行“npm run start”,这将启动代码并在3001端口侦听请求。您可以在common\application\nodeApplication.ts更改此设置,您可以改进应用程序以从外部文件加载这些设置。这超出了本文的范围:

让我们使用任何rest客户端并向http://localhost:3001发送一些请求,如下所示,只是想确保我们有正确的设置:

问好:

带参数调用:

发布数据:

请查看testCotroller和usercontroller了解更多信息。

好的,我们可以启动代码,并通过API调用制造一些噪音。让我们继续创建一个新的控制器。

让我们看看用例:

我想拥有允许我能够:

我们来分析一下:

让我们实现。

步骤 1:为帐户添加新控制器(命名为AccountController

import { UriPrefix } from "../common";
import { BaseController } from "../common/models/baseController";
@UriPrefix("/api/accounts")
export class AccountController extends BaseController{
}

并在控制器列表中注册此控制器:

import { TestController } from "./testController";
import { UserController } from "./userController";
import {AccountController} from "./Account/accountController";
export const CONTROLLERS:Array<any>=[
    TestController,
    UserController,
    AccountController
];

2步:获取可用帐户列表

添加新的AccountController.ts

import { Route, UriPrefix } from "../../common";
import guidHelper from "../../common/helpers/guidHelper";
import { BaseController } from "../../common/models/baseController";
import {Account} from "./account";
import {AccountService} from "./accountService";
@UriPrefix("/api/accounts")
export class AccountController extends BaseController{
    constructor(){
        super()
        if(!AccountService.accounts || AccountService.accounts.length==0){
            AccountService.accounts=[
                <Account>{id:guidHelper.create(), name:"Account 1", status: "normal"},
                <Account>{id:guidHelper.create(), name:"Account 2", status: "deleted"},
            ];
        }
    }
    @Route("")
    public getAccounts():Array<Account>{
        return AccountService.accounts;
    }
}

在第5行和第7行,这将创建映射到的最终uri getAccounts,即“/ap/accounts”。只需简单地返回内存列表的列表。

和Account模型:

export class Account{
    public id:string;
    public name:string;
    public status:string;
}

和AccountService:

import { Account } from "./account";

export class AccountService{
    public static accounts:Array<Account>=[];
}

目前它相当简单,我们拥有的文件夹结构:

只需添加一个名为“account”的新文件夹,并将account所有代码移动到此文件夹中。

让我们再次运行代码,向“/api/accounts”发送请求,我们现在有两个帐户的列表:

现在,我们完成了第一个任务,即“获取可用帐户列表”,有关更多信息,请参阅“feature/get_accounts”中的代码。

3 步:更新帐户

它与“get accounts”任务大致相同。添加处理update请求的新方法:

@Route(":id")
   @HttpPost()
   public updateAccount(id:string, name:string, status:string):string{
       let result:string=AccountService.updateAccount(id, name, status);
       return result;
   }

有一些注意事项:

请不要关注方法体的逻辑。它超出了范围。

对于其余的代码,您可以从“feature/update_account”分支检出。

让我们更新一个帐户:

获取帐户列表,更新了分配的帐户:

4 步:获取帐户

添加处理get请求的getAccount方法:

@Route(":id")
    @HttpGet()
    public getAccount(id:string):any{
        return AccountService.getAccount(id);
    }

添加新帐号和删除帐号,请继续自行操作,有一些提示:

https://www.codeproject.com/Articles/5308554/WebAPI-and-Node

标签:WebAPI,Node,帐户,AccountService,accounts,import,id,string
来源: https://blog.csdn.net/mzl87/article/details/121625906