59 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			59 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| 
								 | 
							
								#!/usr/bin/env python
							 | 
						||
| 
								 | 
							
								# coding=utf-8
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								from flask import Flask
							 | 
						||
| 
								 | 
							
								from flask import make_response
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import json
							 | 
						||
| 
								 | 
							
								from werkzeug.exceptions import NotFound
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								app = Flask(__name__)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								with open("./users.json", "r") as f:
							 | 
						||
| 
								 | 
							
								    users = json.load(f)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								@app.route("/", methods=['GET'])
							 | 
						||
| 
								 | 
							
								def index():
							 | 
						||
| 
								 | 
							
								    return pretty_json({
							 | 
						||
| 
								 | 
							
								        "resources": {
							 | 
						||
| 
								 | 
							
								            "users": "/users",
							 | 
						||
| 
								 | 
							
								            "user": "/users/<username>",
							 | 
						||
| 
								 | 
							
								        },
							 | 
						||
| 
								 | 
							
								        "current_uri": "/"
							 | 
						||
| 
								 | 
							
								    })
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								@app.route("/users", methods=['GET'])
							 | 
						||
| 
								 | 
							
								def all_users():
							 | 
						||
| 
								 | 
							
								    return pretty_json(users)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								@app.route("/users/<username>", methods=['GET'])
							 | 
						||
| 
								 | 
							
								def user_data(username):
							 | 
						||
| 
								 | 
							
								    if username not in users:
							 | 
						||
| 
								 | 
							
								        raise NotFound
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    return pretty_json(users[username])
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								@app.route("/users/<username>/something", methods=['GET'])
							 | 
						||
| 
								 | 
							
								def user_something(username):
							 | 
						||
| 
								 | 
							
								    raise NotImplementedError()
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								def pretty_json(arg):
							 | 
						||
| 
								 | 
							
								    response = make_response(json.dumps(arg, sort_keys=True, indent=4))
							 | 
						||
| 
								 | 
							
								    response.headers['Content-type'] = "application/json"
							 | 
						||
| 
								 | 
							
								    return response
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								def create_test_app():
							 | 
						||
| 
								 | 
							
								    app = Flask(__name__)
							 | 
						||
| 
								 | 
							
								    return app
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								if __name__ == "__main__":
							 | 
						||
| 
								 | 
							
								    app.run(port=5000)
							 |