<prompt> Tengeneza API ya RESTful inayotokana na Python kwa kutumia Flask inayoauni shughuli za CRUD kwenye rasilimali kama vile Bidhaa yenye sifa kama vile product_id, jina, maelezo, bei na wingi. Unganisha API hii na hifadhidata ya PostgreSQL kwa hifadhi inayoendelea. PLINFORMAT  <response>: kutoka kwa chupa ya kuingiza chupa, ombi, jsonifykutoka kwa flask_sqlalchemy kuagiza SQLAlchemykutoka kwa flask_marshmallow agiza Marshmallowprogramu Chupa__jina__app.configSQLALCHEMY_DATABASE_URI Si kwelidb SQLAlchemyprogramuma Marshmallow programudarasa la Bidhaadb.Model: product_id db.Safuwimadb.Integer,msingi_ufunguoKweli jina db.Safuwimadb.String100, uniqueKweli maelezo db.Safuwimadb.String200 bei db.Safuwimadb.Float wingi db.Safuwimadb.Integer def __init__binafsi, jina, maelezo, bei, kiasi: self.name jina self.description maelezo binafsi.bei bei self.quantity wingidarasa ProductSchemama.Schema: darasa la Meta: fields kitambulisho_cha_bidhaa, jina, maelezo, bei, idadiproduct_schema ProductSchemaproducts_schema mbinuPOSTdef add_product: name request.jsonname maelezo request.jsondescription bei request.jsonbei wingi request.jsonquantity new_product Bidhaajina, maelezo, bei, kiasi db.session.addbidhaa_mpya db.session.commit return mbinuGETdef get_products: bidhaa_zote Bidhaa.query.all matokeo products_schema.dumpbidhaa_zote rudisha mbinuGETdef get_productid: product Product.query.getid return mbinuPUTdef update_bidhaaid: product Product.query.getid name request.jsonname maelezo request.jsondescription bei request.jsonbei wingi request.jsonquantity product.name jina product.description maelezo bidhaa.bei bei bidhaa.wingi wingi db.session.commit return mbinuDELETEdef delete_productid: product Product.query.getid db.session.deletebidhaa db.session.commit return product_schema.jsonifybidhaakama __name__ __main__: app.rundebugKweli 