官术网_书友最值得收藏!

PUT /api/v1/users

The PUT API basically helps us update a user's record specified by user_id.

Go ahead and create a route with the PUT method to update the user records defined in the app.py file, as follows:

    @app.route('/api/v1/users/<int:user_id>', methods=['PUT']) 
    def update_user(user_id): 
     user = {} 
     if not request.json: 
         abort(400) 
     user['id']=user_id 
     key_list = request.json.keys() 
     for i in key_list: 
        user[i] = request.json[i] 
     print (user) 
     return jsonify({'status': upd_user(user)}), 200 

Let's specify the definition of the upd_user(user) function, which basically updates the information in the database with the check that the user id exists:

    def upd_user(user): 
      conn = sqlite3.connect('mydb.db') 
      print ("Opened database successfully"); 
      cursor=conn.cursor() 
      cursor.execute("SELECT * from users where id=? ",(user['id'],)) 
      data = cursor.fetchall() 
      print (data) 
      if len(data) == 0: 
        abort(404) 
      else: 
        key_list=user.keys() 
        for i in key_list: 
            if i != "id": 
                print (user, i) 
                # cursor.execute("UPDATE users set {0}=? where id=? ",
(i, user[i], user['id'])) cursor.execute("""UPDATE users SET {0} = ? WHERE id =
?""".format(i), (user[i], user['id'])) conn.commit() return "Success"

Now that we have added the API handle for the PUT method for the user resource, let's test it out as follows:

We have defined our resources that are a part of version v1. Now, let's define our next version release, v2, which will add a tweet resource to our microservices. Users who are defined in users resources are allowed to perform actions on their tweets. Now, /api/info will be shown, as follows:

Our tweets resource will use the HTTP methods as follows:

We can define a tweet as having the following fields:

  • id: This is the unique identifier for each tweet (Numeric type)
  • username: This should exist as a user in the users resources (String type)
  • body: This is the content of the tweet (String type)
  • Tweet_time: (Specify type)

You can define the preceding tweets resource schema in SQLite 3 as follows:

CREATE TABLE tweets( 
id integer primary key autoincrement, 
username varchar2(30), 
body varchar2(30), 
tweet_time date); 

Great! The tweets resource schema is ready; let's create our GET methods for the tweets resource.

主站蜘蛛池模板: 高邮市| 津南区| 左权县| 卢龙县| 蓬安县| 文成县| 阿图什市| 哈尔滨市| 定日县| 潜山县| 理塘县| 凯里市| 宜川县| 大厂| 宁强县| 九江市| 松溪县| 故城县| 滦南县| 定结县| 浑源县| 定安县| 德州市| 辽阳县| 嘉义县| 博罗县| 毕节市| 许昌县| 荔浦县| 石家庄市| 新宁县| 庆元县| 东方市| 久治县| 宜黄县| 桂东县| 尼木县| 宜良县| 樟树市| 江川县| 乌拉特前旗|