From 119d491d35d02195cd0f77ba63f9dc133c15666f Mon Sep 17 00:00:00 2001 From: shangxdy Date: Tue, 28 Feb 2017 15:51:34 +0800 Subject: Init api gateway framework Add api gateway init frame code JIRA:PARSER-112 Change-Id: I4e5cff09f8ded4107b02bcdd791e5e2b707e11c5 Signed-off-by: shangxdy --- apigateway/apigateway/api/controllers/v1/users.py | 81 +++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 apigateway/apigateway/api/controllers/v1/users.py (limited to 'apigateway/apigateway/api/controllers/v1/users.py') diff --git a/apigateway/apigateway/api/controllers/v1/users.py b/apigateway/apigateway/api/controllers/v1/users.py new file mode 100644 index 0000000..8cd2345 --- /dev/null +++ b/apigateway/apigateway/api/controllers/v1/users.py @@ -0,0 +1,81 @@ +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +import pecan +from pecan import request +from pecan import rest +from wsme import types as wtypes + +from apigateway.api import expose + + +class User(wtypes.Base): + id = int + user_id = wtypes.text + name = wtypes.text + email = wtypes.text + + +class Users(wtypes.Base): + users = [User] + + +class UserController(rest.RestController): + + def __init__(self, user_id): + self.user_id = int(user_id) + + @expose.expose(User) + def get(self): + user_info = { + 'id': self.user_id, + 'name': 'parser', + } + return User(**user_info) + + @expose.expose(User, body=User) + def put(self, user): + user_info = { + 'id': self.user_id, + 'name': user.name, + } + return User(**user_info) + + @expose.expose() + def delete(self): + print('Delete user_id: %s' % self.user_id) + + +class UsersController(rest.RestController): + + @pecan.expose() + def _lookup(self, user_id, *remainder): + return UserController(user_id), remainder + + @expose.expose(Users) + def get(self): + db_conn = request.db_conn + users = db_conn.list_users() + users_list = [] + for user in users: + u = User() + u.id = user.id + u.user_id = user.user_id + u.name = user.name + u.email = user.email + users_list.append(u) + return Users(users=users_list) + + @expose.expose(None, body=User, status_code=201) + def post(self, user): + print(user) -- cgit 1.2.3-korg