Source: https://dev-docs.yueshu.com.cn/v5.3.2/app-development/
Documentation version: v5.3.2
# 应用开发教程
使用已有的`movie`数据集,开发一个电影演员查询服务。应用接收电影编号,通过`GET /movies/{movie_id}/actors`接口返回电影名称及参演演员的 JSON 数据。
## 适用读者
适合了解 Python 基本语法、希望将数据库查询接入应用的开发者。教程使用 FastAPI 提供 HTTP 接口,无需提前学习该框架。示例只查询已有数据,不创建或修改图数据。
## 选择连接方式
| 教程 | 悦数图数据库开发版连接方式 | 主要内容
| [使用 Python SDK 构建查询服务](https://dev-docs.yueshu.com.cn/v5.3.2/app-development/python-sdk/) | Python SDK,端口`9669` | 通过客户端执行查询、读取结果集
| [使用 REST API 构建查询服务](https://dev-docs.yueshu.com.cn/v5.3.2/app-development/rest-api/) | HTTP,端口`19669`(预览功能) | 获取 JWT 令牌、发送查询请求、读取响应
两篇教程实现相同的应用接口,任选一篇即可。首次使用可先选择 Python SDK;需要通过 HTTP 访问悦数图数据库开发版时,选择 REST API。两篇均提供完整代码下载。
## 准备悦数图数据库开发版
1. 按[使用 Docker Compose 部署开发版](https://dev-docs.yueshu.com.cn/v5.3.2/get-started/deploy/)启动悦数图数据库开发版。
2. 按[连接并完成首次查询](https://dev-docs.yueshu.com.cn/v5.3.2/get-started/first-query/)加载`movie`,确认能查询编号为`3`的电影及其演员。已加载成功时,继续使用现有数据。
3. 准备悦数图数据库开发版用户名和密码。本地练习可使用`root`和部署时设置的实际密码,设置与转义规则见[设置 root 密码](https://dev-docs.yueshu.com.cn/v5.3.2/get-started/deploy/#root-password)。修改过密码时,使用新密码。
示例固定访问`/default_schema/movie`。数据位于其他 Schema 时,需修改示例文件中两条查询的图路径。
## 请求流程
````
flowchart LR
caller["浏览器或 curl"] -->|"HTTP · 8100"| app["电影演员查询服务
FastAPI"]
app -->|"Python SDK · 9669
或 REST API · 19669"| database["图数据库
movie 图"]
````
浏览器或`curl`调用应用的`8100`端口,应用再访问悦数图数据库开发版。应用负责校验电影编号、执行查询和返回 JSON,悦数图数据库开发版用户名、密码及 JWT 令牌由应用保存和使用。
示例应用默认监听`127.0.0.1`,可从应用所在电脑访问。通过 SSH 在远端运行应用时,按所选教程中的端口转发说明访问。