Я работал над парой руководств перед Рождеством, и теперь я пытаюсь вернуться к тому, с чего я ушел. Пытаюсь научить себя REST, создав несколько простых конечных точек API. Мое замешательство связано с тем, что я не могу найти учебники, которые использовал, и, похоже, есть несколько разных способов решить проблему. Так что теперь я не уверен, как правильно это сделать. Код работает для возврата всех клиентов в БД, теперь я хочу вернуть конкретного клиента на основе его идентификатора
Хорошо, это то, что у меня есть...
У меня есть app.py, который определяет ресурс следующим образом:
api.add_resource(CustomerResource, '/Customer')
У меня есть models.py, который определяет класс клиента следующим образом:
ma = Marshmallow()
db = SQLAlchemy()
class Customer(db.Model):
__tablename__ = 'customers'
__table_args__ = {"schema":"business"}
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.Text, nullable=False)
status = db.Column(db.Integer, nullable=False)
class CustomerSchema(ma.Schema):
id = fields.Integer()
name = fields.String(required=True)
status = fields.Integer(required=True)
У меня есть customer.py, который определяет класс клиента следующим образом:
customers_schema = CustomerSchema(many=True)
customer_schema = CustomerSchema()
class CustomerResource(Resource):
def get(self):
customers = Customer.query.all()
customers = customers_schema.dump(customers)
return {'status': 'success', 'data': customers}, 200
Я пытался использовать request.args, но я не верю, что это правильный путь, потому что он станет неподдерживаемым.
Таким образом, все вышеперечисленное работает с GET, успешно возвращающим всех клиентов. Но теперь я хочу иметь возможность использовать GET http://127.0.0.1:5000/api/Customer/10 и просто вернуть детали для идентификатора клиента = 10
Я не уверен, нужно ли мне определять новый ресурс или можно изменить существующий CustomerResource, чтобы проверить наличие параметра.
Любое руководство приветствуется...