An open API service indexing awesome lists of open source software.

https://github.com/zenqos/zenqo

A return-value-based Go web framework for building clean, scalable server-side applications.
https://github.com/zenqos/zenqo

chi go golang rest-api web-framework

Last synced: 2 months ago
JSON representation

A return-value-based Go web framework for building clean, scalable server-side applications.

Awesome Lists containing this project

README

          


English | 한국어


Zenqo

반환값 기반의 Go 웹 프레임워크 — 깔끔하고 확장 가능한 서버 사이드 애플리케이션 구축을 위해


CI
Go Reference
Go Report Card
License

## 소개

Zenqo는 효율적이고 유지보수하기 쉬운 Go 웹 애플리케이션을 위한 프레임워크입니다. 핸들러는 `http.ResponseWriter`에 직접 쓰는 대신 `(data, error)`를 반환하고, 프레임워크가 JSON 직렬화, 상태 코드, 에러 응답을 자동으로 처리합니다.

내부적으로 chi를 라우터로 사용합니다.

## 철학

핸들러는 `(data, error)`를 반환하는 순수 함수입니다. 프레임워크가 JSON 직렬화, 상태 코드, 에러 응답을 처리하므로 코드는 비즈니스 로직에만 집중할 수 있습니다.

```go
// Zenqo
func getUser(r *http.Request) (any, error) {
user, err := svc.FindByID(id)
if err != nil {
return nil, core.ErrNotFound("user not found")
}
return user, nil
}
```

## 시작하기

```bash
go install github.com/zenqos/zenqo/cmd/zenqo@latest
zenqo new my-app
cd my-app && go run .
```

→ 전체 가이드: [시작하기](./docs/getting-started.ko.md)

## 주요 기능

- **반환값 핸들러** — `(any, error)` 시그니처, JSON 및 상태 코드 자동 처리
- **컨트롤러** — `BaseController`로 라우트를 기본 경로 아래에 묶기
- **Bind & Validate** — `Bind[T]`로 JSON 디코딩과 유효성 검사를 한 번에
- **가드 & 인터셉터** — 라우트, 컨트롤러, 전역 수준의 접근 제어
- **에러 처리** — 패닉 복구, 타입 에러, 커스터마이즈 가능한 에러 핸들러
- **자동 camelCase** — `json` 태그 없이도 camelCase JSON 직렬화
- **내장 미들웨어** — CORS, 보안 헤더, 요청 ID, 패닉 복구

## 예제

- [`examples/basic`](./examples/basic) — 컨트롤러 없이 직접 라우트 등록
- [`examples/crud`](./examples/crud) — 컨트롤러 + 서비스 패턴의 CRUD API
- [`examples/auth`](./examples/auth) — 가드, 인터셉터, Bind+Validation을 활용한 JWT 인증

## 문서

| 주제 | EN | KO |
|------|----|----|
| 시작하기 | [→](./docs/getting-started.md) | [→](./docs/getting-started.ko.md) |
| 컨트롤러 | [→](./docs/controllers.md) | [→](./docs/controllers.ko.md) |
| 요청 바인딩 | [→](./docs/request-binding.md) | [→](./docs/request-binding.ko.md) |
| 에러 처리 | [→](./docs/error-handling.md) | [→](./docs/error-handling.ko.md) |
| 가드 & 인터셉터 | [→](./docs/guards-interceptors.md) | [→](./docs/guards-interceptors.ko.md) |
| 미들웨어 | [→](./docs/middleware.md) | [→](./docs/middleware.ko.md) |
| OpenAPI | [→](./docs/openapi.md) | [→](./docs/openapi.ko.md) |

- [CHANGELOG](./CHANGELOG.md) — 버전 히스토리
- [pkg.go.dev](https://pkg.go.dev/github.com/zenqos/zenqo) — API 레퍼런스 (GoDoc)

## 기여자





ftery0

ftery0


💻



Raghu :)

Raghu :)


💻



aicontentcreate2023-star

aicontentcreate2023-star


💻


## 기여하기

기여를 환영합니다! PR 제출 전에 [기여 가이드](CONTRIBUTING.md)를 읽어주세요.

## 보안

보안 취약점 발견 시 **공개 이슈를 열지 마세요**. [보안 정책](SECURITY.md)의 안내에 따라 신고해주세요.

## 연락처

- 작성자 — [@ftery0](https://github.com/ftery0)

## 라이선스

Zenqo는 [MIT 라이선스](LICENSE)를 따릅니다.