有范云协作介绍
7 分钟阅读
      有范云协作
让项目的协作姿势更有范儿!
简介
一套集规范、工具、平台于一体的工程化解决方案
      
    演示项目
使用有范云协作开发 Todo App
    课程内容及目标
通过演示项目, 掌握以下工具的使用:
- 接口管理平台 NEI
 - 构建工具 NEI-toolkit
 - 本地模拟容器 Puer
 - 接口测试工具 Phosphorus
 
接口管理平台 NEI 介绍
- 项目组/项目
 - 用户组
 - 页面管理
 - 
          资源库
- 异步接口
 - 数据类型
 - 模板资源
 - API 接口
 
 - 标签系统
 - 共享资源
 - 项目文档
 
Todo App 分析: 产品划分
- Official site
 - Web App
 - Mobile App
 - 其他子产品, 比如运营后台
 
Todo Web App 分析: 页面
- 
            登录页面
- /login
 
 - 
            主页面
- /main
 - NEI 中的单页应用如何管理?
 
 
Todo Web App 分析: 数据类型
- 
            用户对象: User简化版```json { "id": "{用户id}", "name": "{用户名称}" } ```
 - 
            todo 对象: Todo简化版```json { "id": "{todo id}", "text": "{todo 内容}", "completed": "{是否完成}" } ```
 
Todo Web App 分析: 接口
获取 todo 列表:
- 地址: /api/todos/
 - 方法: GET
 - 输入: 无
 - 
            输出:```json { "code": "{响应状态码}", "message": "{响应消息}", "result": "Array{Todo}" } ```
 
Todo Web App 分析: 接口
添加单个 todo:
- 地址: /api/todos/
 - 方法: POST
 - 
            输入:```json { "text": "{todo 内容}" } ```
 - 
            输出:```json { "code": "{响应状态码}", "message": "{响应消息}", "result": "{Todo}" } ```
 
Todo Web App 分析: 接口
更新单个 todo 的内容:
- 地址: /api/todos/:todoId
 - 方法: PUT
 - 
            输入:```json { "text": "{新的 todo 内容}" } ```
 - 
            输出:```json { "code": "{响应状态码}", "message": "{响应消息}", "result": "{Todo}" } ```
 
Todo Web App 分析: 接口
批量更新 todo 的完成状态:
- 地址: /api/todos/
 - 方法: PUT
 - 
            输入:```json { "completed": "{是否完成}", "ids": "Array{todoId}" } ```
 - 
            输出:```json { "code": "{响应状态码}", "message": "{响应消息}", "result": "Array{Todo}" } ```
 
Todo Web App 分析: 接口
删除单个 todo:
- 地址: /api/todos/:todoId
 - 方法: DELETE
 - 输入: 无
 - 
            输出:```json { "code": "{响应状态码}", "message": "{响应消息}", "result": "{Todo}" } ```
 
NEI 操作演示
构建工具 NEI-toolkit
将 NEI 上定义好的规范(异步接口、数据类型、模板)翻译成指定语言的程序代码。目前支持的工程类型有:
- 
            Web
- Java
 - 不断增加中...
 
 - Android
 - iOS
 
构建工具 NEI-toolkit
生成本地模拟容器 Puer 的配置文件:puer.js
          ```js
          var engine = {};
          engine.ftl = (require('../src/main/webapp/src/javascript/lib/express-freemarker/index.js'))();
          module.exports = {
            "port": 8002,
            "engine": engine,
            "dir": "../src/main/webapp/",
            "views": "../src/main/webapp/WEB-INF/views/",
            "offline": false,
            "rules": "./route.js"
          };
          ```
        
      NEI-toolkit: 生成 Todo Web 工程
        ```bash
        // 1. 生成工程
        nei build 11443 -p ./todoweb /* 11443 是 todo 项目的 id */
        // 2. 安装依赖
        cd todoweb/src/main/webapp/
        bower install
        cd src/javascript/lib/express-freemarker/
        npm install
        ```
      
    运行 Todo Web
`方式一: 双击运行文件`
          双击 deploy 目录下的运行文件, 例如 OS X 下是 server.command 文件
        
        `方式二: 命令行`
          ```bash
          puer -c nei.11443/puer.js
          mcss -w 1 -c src/main/webapp/mcss.json
          ```
        
      运行 Todo Web
          Todo Web 项目中定义了两张页面, 路径是 `/login` 和 `/index`,所以它们的访问地址是:
          ```html
          http://localhost:8002/login
          http://localhost:8002/index
          ```
        
      前端开发调试要点
- 修改 mock 数据要方便
 - 切换服务器地址要方便
 
调试 Todo Web
`(1)使用本地 mock 数据:`
        
          测试数据默认从 NEI 获取,util.js:
          ```js
          var ROOT = {
            API:'http://nei.hz.netease.com/api/parameter/getTestData?api&type=%s&id=%s'
          }
          ```
          将 puer.js 中的 `offline` 改为 `true`:
          ```js
          module.exports = {
            "offline": true  //使用本地 mock 数据
          }
          ```
          >注:更改配置文件后,需要重启服务
        
      调试 Todo Web
`(2)修改本地 mock 数据:`
        
          修改 mock 数据文件, 例如 todo 列表文件:
          ```bash
          /src/main/webapp/src/mock/get/api/todos.json
          ```
          无需刷新页面, 就能即时看到修改变化
        
      调试 Todo Web
`(3)连接服务器`
        
          修改 route.js, 所有请求使用所要连接的服务器地址:
          ```bash
          module.exports = {
            "ALL /api/*": "http://localhost:3000", // 本地起的服务器, 其他同事的服务器, 测试服务器, 线上服务器等
            //"DELETE /api/todo/:todoId":u.p(15763,"delete/api/todo/todoId"),
            //"GET /api/todos":u.p(15759,"get/api/todos"),
            //"POST /api/todos":u.p(15760,"post/api/todos"),
            //"PUT /api/todos":u.p(15762,"put/api/todos"),
            //"PUT /api/todos/:todoId":u.p(15761,"put/api/todos/todoId"),
            "GET /index":u.r(0,[{"i":11032,"p":"pages/index"}]),
            "GET /login":u.r(0,[{"i":11031,"p":"pages/login"}])
          };
          ```
          >刷新页面就能看到变化, 不需要重启服务
        
      接口测试工具 Phosphorus
      一款类似 Postman 的接口测试工具, 无缝对接有范云协作
留下评论