WebAPI和Node
2021/11/30 20:40:26
本文主要是介绍WebAPI和Node,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
在这篇文章中,您将学习一种在node中实现RESTful的简单方法,首先为account添加一个新控制器,获取可用帐户列表,更新帐户,最后获取帐户。
已经有一些库这样做了。我不打算替换它,只是制作一些疯狂的代码。如果我们将来需要一些技巧来解决我们的问题,希望这可以帮助我们。
在GitHub - techcoaching/node_controller查看来自github的代码。
在可视化代码中打开这个,我们可以看到:
就几个文件,让我解释一下:
- 公共文件夹:这是公共代码、功能所在的位置。
- main.ts:这是启动文件。
- 控制器文件夹:这是您的应用程序控制器在.NET WebAPI项目中的位置。有两个示例控制器,如果需要,您可以查看它们以获得更多理解。
- 在main.ts中,有一个特别的技巧,只是新建一个应用程序类型的节点(使用express),注册路由并启动,就这么简单吧:
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调用制造一些噪音。让我们继续创建一个新的控制器。
让我们看看用例:
我想拥有允许我能够:
- 获取可用帐户列表
- 更新账户信息
- 获取账户信息
- 删除帐户
- 添加新帐户。
账户信息包括:- 帐户ID,guid值
- 账户名
- 状态:值可以是:正常、已删除
我们来分析一下:
- 获取账户列表,我们需要:
- 获取请求
- uri:<基本uri>/accounts
- 返回:json中的帐户数组
- 更新账户信息:
- POST请求,我们使用POST用于create和update
- uri:<base uri>/accounts/<account id>
- body:json格式的账户
- 返回:无
- 获取账户信息:
- GET 请求
- uri:<base uri>/accounts/<account id>
- 返回:账户信息
- 删除帐户:
- DELETE 请求
- uri:<base uri>/accounts/<account id>
- 返回:账号被删除
- 添加新帐户:
- POST 请求
- uri: <base uri>/accounts
- body:json格式的账户信息
让我们实现。
步骤 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; }
有一些注意事项:
- 在第 1 行,我们注册id作为参数接收的路由。
- 在第 2 行,它处理post对上述uri的请求。
- 在第 3 行,将自动为我们注入参数。name和status来自请求的正文。
请不要关注方法体的逻辑。它超出了范围。
对于其余的代码,您可以从“feature/update_account”分支检出。
让我们更新一个帐户:
获取帐户列表,更新了分配的帐户:
第 4 步:获取帐户
添加处理get请求的getAccount方法:
@Route(":id") @HttpGet() public getAccount(id:string):any{ return AccountService.getAccount(id); }
添加新帐号和删除帐号,请继续自行操作,有一些提示:
- 添加新HttpDelete的用于处理delete帐户,类似于HttpPost。
- 您可以使用HttpPost添加新帐户。
https://www.codeproject.com/Articles/5308554/WebAPI-and-Node
这篇关于WebAPI和Node的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南