PocketBase — это открытое исходное кодовое Go-решение для backend-сервера, включающее:
Для документации и примеров, пожалуйста, посетите https://pocketbase.io/docs.
[!WARNING] Пожалуйста, имейте в виду, что PocketBase находится в активной стадии разработки и поэтому полная обратная совместимость не гарантируется до выхода версии v1.0.0.
Самый простой способ взаимодействия с PocketBase Web API — использование одного из официальных SDK-клиентов:
Вы можете скачать предварительно собранный исполняемый файл для вашей платформы с страницы Релизов.
После загрузки распакуйте архив и запустите ./pocketbase serve
в распакованной директории.
Предварительно собранные исполняемые файлы основаны на файле examples/base/main.go
и по умолчанию имеют включенный плагин JS VM, что позволяет расширять PocketBase с помощью JavaScript (для получения дополнительной информации обратитесь к Расширение с помощью JavaScript).
PocketBase распространяется в виде обычной Go-библиотеки, что позволяет вам создавать собственные бизнес-логики для вашего приложения и всё ещё иметь портативное одно исполняемое приложение в конце.
Вот минимальный пример:
Установите Go 1.23+ (если вы ещё этого не сделали)
Создайте новую директорию проекта с следующим файлом main.go
внутри неё:
package main
import (
"log"
"github.com/pocketbase/pocketbase"
"github.com/pocketbase/pocketbase/core"
)
func main() {
app := pocketbase.New()
app.OnServe().BindFunc(func(se *core.ServeEvent) error {
// регистрирует новый маршрут "GET /hello"
se.Router.GET("/hello", func(re *core.RequestEvent) error {
return re.String(200, "Hello world!")
})
``` return se.Next()
})
if err := app.Start(); err != nil {
log.Fatal(err)
}
}
Чтобы инициализировать зависимости, выполните команду go mod init myapp && go mod tidy
.
Чтобы запустить приложение, выполните команду go run main.go serve
.
Чтобы создать статически связанный исполняемый файл, выполните команду CGO_ENABLED=0 go build
и затем запустите созданный исполняемый файл с помощью ./myapp serve
.
Для получения дополнительной информации обратитесь к Расширение с помощью Go.
main.go
из репозиторияЧтобы собрать минимальное автономное исполняемое приложение, как предварительно собранные в разделе релизов, вы можете просто выполнить команду go build
внутри директории examples/base
:
examples/base
GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build
(https://go.dev/doc/install/source#environment)./base serve
.Обратите внимание, что поддерживаемые цели сборки чистым Go-драйвером SQLite в настоящее время включают:
darwin amd64
darwin arm64
freebsd amd64
freebsd arm64
linux 386
linux amd64
linux arm
linux arm64
linux ppc64le
linux riscv64
linux s390x
windows amd64
windows arm64
PocketBase включает в себя смесь модульных и интеграционных тестов.
Чтобы запустить их, используйте стандартную команду go test
:
go test ./...
```Также проверьте [руководство по тестированию](http://pocketbase.io/docs/testing), чтобы узнать, как писать собственные пользовательские тесты для приложения.
## Безопасность
Если вы обнаружите уязвимость безопасности в PocketBase, пожалуйста, отправьте электронное письмо на **support at pocketbase.io**.
Все отчеты будут немедленно рассмотрены, и вы будете упомянуты в примечаниях к исправлению.
## Вклад
PocketBase — это бесплатный и открытый проект, лицензированный под лицензией [MIT License](LICENSE.md).
Вы можете делать с ним все, что хотите, даже предлагать его как платную услугу.
Вы можете помочь в продолжении его развития:
- [Внести вклад в исходный код](CONTRIBUTING.md)
- [Предложить новые функции и сообщить о проблемах](https://github.com/pocketbase/pocketbase/issues)
Вклады для новых OAuth2 провайдеров, исправлений ошибок, оптимизаций кода и улучшений документации приветствуются.
Однако, пожалуйста, воздержитесь от создания вкладов для новых функций без предварительного обсуждения деталей реализации.
PocketBase имеет [дорожную карту](https://github.com/orgs/pocketbase/projects/2), и я стараюсь работать над проблемами в определенном порядке, и такие вклады часто появляются внезапно и нарушают все первоначальное планирование с трудоемким взаимодействием.Не расстраивайтесь, если я закрою ваш вклад, даже если он хорошо выполнен и протестирован. Это не означает, что он никогда не будет включен.
Позже мы всегда можем обратиться к нему и/или использовать части вашего кода, когда наступит время работать над проблемой (не беспокойтесь, вы будете упомянуты в примечаниях к выпуску).
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )