Zanzibar配置驅(qū)動的 Web 應(yīng)用框架
Zanzibar 是一個擴展框架,用來構(gòu)建配置驅(qū)動的 Web 應(yīng)用。Zanzibar 的目標是將應(yīng)用開發(fā)簡化成兩步:
- 為應(yīng)用和組件編寫配置
- 編寫代碼實現(xiàn)和測試業(yè)務(wù)邏輯
Zanzibar 將基于配置來生成樣板和膠水代碼。你只需要填充你的業(yè)務(wù)代碼,Zanzibar 就可以幫你生成一個可發(fā)布的應(yīng)用。
Zanzibar 內(nèi)建的組件可以簡化微服務(wù)和網(wǎng)關(guān)服務(wù)的開發(fā)。
Zanzibar 的項目目錄結(jié)構(gòu):
example-gateway # root directory
├── bin # directory for generated application binaries
│ └── example-gateway # generated example-gateway binary
├── build # directory for all generated code
│ ├── clients # generated mocks and module initializers for clients
│ ├── endpoints # generated mocks and module initializers for endpoints
│ ├── gen-code # generated structs and (de)serializers by Thrift compiler
│ ├── middlewares # generated module initializers for middlewares
│ │ └── default # generated module initializers for default middlewares
│ └── services # generated mocks and module intialziers for services
├── build.yaml # config file for Zanzibar code generation, see below for details
├── clients # config directory for modules of client module class
│ └── bar # config directory for a client named 'bar'
├── config # config directory for application runtime properties
│ ├── production.yaml # config file for production environment
│ └── test.yaml # config file for test environment
├── copyright_header.txt # optional copyright header for open source application
├── endpoints # config directory for modules of endpoint module class
│ └── bar # config directory for an endpoint named 'bar'
├── idl # idl directory for all thrift files
│ ├── clients # idl directory for client thrift files
│ └── endpoints # idl directory for endpoint thrift files
├── middlewares # config directory for modules of middleware module class
│ ├── transform-response # config directory for a middleware named 'transform-response'
│ ├── default # directory for all default middlewares
│ │ └── log-publisher # config directory for a default middleware named 'log-publisher'
│ └── default.yaml # config file describing default middlewares and their execution order
└── services # config directory for modules of service module class
└── example-gateway # config directory for a service named 'example-gateway'評論
圖片
表情
