Codegen Python GraphQL Entity Framework
项目描述
Platformics
Platformics是一个基于代码生成来实现在PostgreSQL数据库上运行的全功能GraphQL API的GraphQL API框架,支持通过S3实现授权策略执行和文件持久化。它建立在最好的Python工具和框架之上!
使Platformics工作的库和工具
这些工具/库的链接
- LinkML - 模式建模语言
- FastAPI - 异步HTTP路由器
- Strawberry - GraphQL框架
- Pydantic - 数据验证
- Cerbos - 授权
- SQLAlchemy - 数据库访问/ORM
- factory_boy - 测试固定值
- Alembic - 数据库迁移
当前特性
- 使用简单的YAML格式表达您的模式
- GraphQL Dataloader模式(无n+1查询!)
- 授权策略强制执行
- 灵活过滤
- 数据聚合
- 顶级分页
- 关系遍历
- 数据库迁移
- 生成的测试固定值
- pytest连接
- VSCode调试器集成
- 授权S3文件上传/下载
- 将自定义REST端点添加到生成的API
- 将自定义GQL查询/突变添加到生成的API
路线图
- 插件钩子,用于将业务逻辑添加到生成的GQL解析器
- 支持任意类继承层次结构
- 打包并发布到PyPI
如何设置自己的platformics API
- 将test_app模板代码复制到您的自己的仓库。
- 编辑
schema/schema.yml
以反映您的应用程序的数据模型。 - 运行
make build
然后运行make init
以构建和运行您自己的GraphQL API服务。 - 浏览到http://localhost:9009/graphql与您的API交互!
- 运行
make token
生成一个您可以使用来与API交互的授权令牌。该make
目标将必要的标头复制到系统剪贴板。将令牌粘贴到GraphQL探索器API底部的headers
部分
平台ics版本控制
可以通过以下方式使用platformics在下游应用程序中
- 使用platformics镜像作为基础Docker镜像。要选择platformics的版本,请将适当的版本标签添加到Docker镜像中
- 作为依赖项安装,
pip install platformics
。
在pyproject.toml
中,版本使用poetry-dynamic-versioning进行管理,该版本基于git标签确定。
迭代您的模式
- 修改
schema/schema.yml
- 运行
make codegen
以重新运行代码生成并重新启动API服务 - 如果您的更改需要数据库模式更改,则运行
make alembic-autogenerate
和make alembic-upgrade-head
以生成数据库迁移并运行它们。
如何做
贡献
本项目遵守贡献者公约行为准则。通过参与,您应遵守此准则。请向opensource@chanzuckerberg.com报告不可接受的行为。
报告安全问题
请通过联系security@chanzuckerberg.com负责任地披露安全问题。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分发
platformics-0.1.0.tar.gz (59.0 kB 查看哈希)
构建分发
platformics-0.1.0-py3-none-any.whl (78.7 kB 查看散列值)
关闭
platformics-0.1.0.tar.gz 的散列值
算法 | 散列摘要 | |
---|---|---|
SHA256 | a5370199fa568425603d51c0e611ac3c1b8577ec9096d7e2afa5f93b18fcba0a |
|
MD5 | e53214f1047cdd3ebfc88357e7e366c2 |
|
BLAKE2b-256 | f0ac078cadf3860b77f12cb95f9560da0b2aa6f020d41e2fafc8b5ebf062d752 |
关闭
platformics-0.1.0-py3-none-any.whl 的散列值
算法 | 散列摘要 | |
---|---|---|
SHA256 | 41f2fe616c33229557cd9732d780439bd1a469f4baeda468d8ea00bb1bd3a5a5 |
|
MD5 | d0d0a5e849d477897121d1d5343e3c6b |
|
BLAKE2b-256 | 8f692922765e8efcfeef21ed6d9f5a6b1469b0c288b5d457323dfd58c12b3df3 |