返回

现代工具如何使构建Web服务更加容易

前端

简介

在当今快节奏的世界中,快速构建和部署Web服务至关重要。gRPC和TypeScript等现代工具使这一过程变得比以往任何时候都更加容易。gRPC是一个高性能的远程过程调用(RPC)框架,而TypeScript是一种静态类型的编程语言,可以编译成JavaScript。结合使用这两种工具,您可以轻松构建健壮且可维护的Web服务。

使用gRPC和TypeScript构建Web服务

先决条件

在继续之前,您需要确保已经安装了以下软件:

  • Node.js
  • npm
  • gRPC
  • TypeScript

创建一个新的gRPC项目

首先,您需要创建一个新的gRPC项目。为此,请打开终端并运行以下命令:

mkdir my-grpc-project
cd my-grpc-project

初始化一个新的gRPC服务

接下来,您需要初始化一个新的gRPC服务。为此,请运行以下命令:

grpc-tools init

这将在当前目录中创建一个名为helloworld.proto的文件。此文件包含gRPC服务定义。

编辑helloworld.proto文件

打开helloworld.proto文件并添加以下内容:

syntax = "proto3";

package helloworld;

service Greeter {
  rpc SayHello (HelloRequest) returns (HelloReply) {}
}

message HelloRequest {
  string name = 1;
}

message HelloReply {
  string message = 1;
}

此代码定义了一个名为Greeter的服务,该服务只有一个方法:SayHelloSayHello方法接受一个名为HelloRequest的请求消息,并返回一个名为HelloReply的响应消息。

生成gRPC代码

接下来,您需要生成gRPC代码。为此,请运行以下命令:

grpc-tools compile helloworld.proto

这将在当前目录中生成一个名为helloworld_pb.js的文件。此文件包含gRPC代码,可用于构建和调用Web服务。

创建一个新的TypeScript项目

现在,您需要创建一个新的TypeScript项目。为此,请打开终端并运行以下命令:

mkdir my-typescript-project
cd my-typescript-project
npm init -y

这将在当前目录中创建一个名为package.json的文件。此文件包含TypeScript项目定义。

安装gRPC-Web

接下来,您需要安装gRPC-Web。gRPC-Web是一个JavaScript库,允许您使用gRPC构建Web服务。为此,请运行以下命令:

npm install @grpc/grpc-web

创建一个新的TypeScript服务

现在,您需要创建一个新的TypeScript服务。为此,请在当前目录中创建一个名为helloworld.ts的文件。此文件包含TypeScript服务定义。

编辑helloworld.ts文件

打开helloworld.ts文件并添加以下内容:

import * as grpcWeb from '@grpc/grpc-web';

import {GreeterClient} from './helloworld_pb_service';
import {HelloRequest, HelloReply} from './helloworld_pb';

class GreeterServiceClient {
  private client: GreeterClient;

  constructor() {
    this.client = new GreeterClient('http://localhost:8080');
  }

  public async sayHello(name: string): Promise<string> {
    const request = new HelloRequest();
    request.setName(name);

    const response = await this.client.sayHello(request);
    return response.getMessage();
  }
}

export default GreeterServiceClient;

此代码定义了一个名为GreeterServiceClient的TypeScript服务。此服务使用gRPC-Web来调用Greeter服务。GreeterServiceClient服务有一个方法:sayHellosayHello方法接受一个名为name的字符串,并返回一个包含问候消息的字符串。

使用TypeScript服务

现在,您已经创建了一个TypeScript服务,您可以使用它来调用Greeter服务。为此,请在当前目录中创建一个名为index.ts的文件。此文件包含TypeScript代码,可用于调用Greeter服务。

编辑index.ts文件

打开index.ts文件并添加以下内容:

import GreeterServiceClient from './helloworld';

const client = new GreeterServiceClient();

client.sayHello('World').then((response) => {
  console.log(response);
});

此代码使用GreeterServiceClient服务来调用Greeter服务的SayHello方法。SayHello方法接受一个名为World的字符串,并返回一个包含问候消息的字符串。

运行TypeScript服务

现在,您已经创建了一个TypeScript服务,您可以使用它来调用Greeter服务。为此,请运行以下命令:

tsc
node index.js

这将编译TypeScript代码并运行TypeScript服务。

测试TypeScript服务

现在,您可以使用浏览器测试TypeScript服务。为此,请在浏览器中打开以下URL:

http://localhost:8080

您应该会看到一条消息,内容为“Hello, World!”。

结论

在本文中,您学习了如何使用gRPC和TypeScript构建一个Web服务。您还学习了如何使用gRPC-Web来调用Web服务。这些工具使构建和部署Web服务变得比以往任何时候都更加容易。