返回

从零入门,畅游 Hertz 服务开发世界

后端

借 Hz 之力,化繁为简,Hertz 服务开发之旅

开发 Hertz 服务不再是难事,有了命令行工具 Hz,一切变得如此轻松。它作为 Hertz HTTP 框架的助手,让你从环境搭建到服务部署,一气呵成。本文将带你踏上 Hertz 服务开发之旅,开启高效之旅。

环境搭建与工具介绍

踏上这段旅程的第一步便是环境搭建。只需一个命令,Hz 便为你准备好所需的一切。安装完成后,运行以下命令初始化项目:

hz init my-hz-app

一个名为 my-hz-app 的新项目就此诞生。项目结构一目了然:

  • cmd 目录:存放命令行工具 Hz 的配置文件。
  • internal 目录:Hertz 服务的代码核心。
  • public 目录:存放静态文件和模板。

IDL 简介

IDL(接口语言)是 Hertz 的一大特色。它采用简单易懂的语法,服务与客户端之间的交互接口。以下是一个 IDL 示例:

syntax = "proto3";

package example;

message Request {
  string name = 1;
}

message Response {
  string message = 1;
}

service Greeter {
  rpc SayHello (Request) returns (Response);
}

Hz 的运行模式

Hz 提供了两种运行模式:服务模式和网关模式。服务模式用于构建独立的服务,而网关模式则可将多个服务聚合在一起,提供统一的入口。

实践出真知

理论知识固然重要,但实践才能出真知。让我们通过一个简单的示例,体验 Hz 的强大功能。在 internal/app 目录下,新建一个 handler.go 文件,并添加以下代码:

package app

import (
	"context"
	"fmt"

	example "github.com/cloudwego/hertz/examples/app/api/helloworld"
)

func NewGreeterHandler() *GreeterHandler {
	return &GreeterHandler{}
}

type GreeterHandler struct{}

func (h *GreeterHandler) SayHello(ctx context.Context, req *example.Request) (*example.Response, error) {
	return &example.Response{
		Message: fmt.Sprintf("Hello, %s!", req.Name),
	}, nil
}

总结

借助命令行工具 Hz,Hertz 服务开发变得如此简单。无论是环境搭建、IDL 介绍、运行模式选择,还是实战演练,Hz 都为你提供了全面的支持。如果你想深入了解 Hertz,欢迎观看 CloudWeGo 源码解读直播的第二场,更多精彩内容等你探索。