0%

RESTful Routes

这一节,我们通过 TDD 设置三个新的路由,遵循 RESTful 最佳实践。

Endpoint HTTP Method CRUD Method Result
/users GET READ get all users
/users/:id GET READ get single user
/users POST CREATE add a user

我们要实现:

  1. 写一个测试
  2. 运行测试,看着它失败(红色
  3. 编写足够的代码以使测试通过(绿色
  4. 重构(如有必要)

我们开始写 POST 路由……

阅读全文 »

Flask Blueprints

测试之后,我们来重构应用,添加 Bluepoint

mkdir services/users/project/api
touch services/users/project/api/__init__.py

services/users/project/api/users.py

from flask import Blueprint, jsonify

users_blueprint = Blueprint('users', __name__)


@users_blueprint.route('/users/ping', methods=['GET'])
def ping_pong():
return jsonify({'status': 'success', 'message': 'pong!'})
阅读全文 »

Docker Config

让我们将 Flask 应用容器化(containerize)。

确保已经安装了 Docker :

$ docker -v
Docker version 18.06.1-ce, build e68fc7a

$ docker-compose -v
docker-compose version 1.22.0, build f46880fe

$ docker-machine -v # 目前 docker-machine 不是必需的
docker-machine version 0.14.0, build 89b8332
阅读全文 »

Geting Started

本节,我们设置最基本的项目结构,以及定义第一个服务。

创建全新的项目,并安装 Flask :

$ mkdir testdriven-app && cd testdriven-app
$ virtualenv .venv
$ source .venv/bin/activate
(.venv)$ pip install flask

$ mkdir services && cd services
$ mkdir users && cd users
$ mkdir project
阅读全文 »

App Overview

我们在建什么?

在本课程结束时,您将构建一个代码评估工具,用于对代码练习进行评级,类似于Codecademy,使用Python,Flask,JavaScript和ReactJS。该应用程序本身将允许用户登录并提交解决方案以解决编码问题。他们还可以获得有关特定解决方案是否正确的反馈。

最终应用:

![](https://raw.githubusercontent.com/keer2345/storehouse/master/hexo/images/2018/0923/001.gif)
阅读全文 »

Microservices

https://testdriven.io

微服务架构使得大型应用分解成一些小型服务并相互通信。每个服务都是独立的,可部署、升级、扩展以及替换,与整体分开。服务之间的通信通常通过HTTP调用(请求/响应)在网络连接上进行。Web套接字消息队列和远程过程调用(RPC)也可用于连接独立组件。

每个独立的服务专注于单一任务,分离业务单元,并由 Restful 来沟通管理。

本课程的目标是用微服务来开发应用。很少深究原因,而是专注于如何实现。微服务并不容易,伴随着一系列挑战和难以解决的问题。在开始之前请牢记这一点。

阅读全文 »