<prompt> Unda seva ya wavuti ya Golang iliyo na ncha za kuunda, kusoma, kusasisha, na kufuta rekodi katika hifadhidata ya PostgreSQL. Seva inapaswa kutumia taarifa zilizotayarishwa ili kuzuia mashambulizi ya sindano ya SQL.  <response>: Ili kuunda seva ya wavuti ya Golang iliyo na vidokezo vya kuunda, kusoma, kusasisha, na kufuta rekodi katika hifadhidata ya PostgreSQL kwa kutumia taarifa zilizotayarishwa, fuata hatua hizi:1. Sakinisha vifurushi vinavyohitajika:- Nenda: Gorilla Mux ya kuelekeza: nenda upate -u github.comgorillamux- pq Dereva wa PostgreSQL wa hifadhidata ya Gosql kifurushi: nenda pata -u github.comlibpq2. Unda faili mpya iitwayo main.go na uongeze msimbo ufuatao ili kusanidi muundo msingi wa programu:nendakifurushi kikuukuagiza databasesqlusimbajijsonfmtloginethttpgithub.comgorillamux_ github.comlibpqaina ya muundo wa rekodi Kitambulisho int json:idMfuatano wa jina json:jinaMfuatano wa thamani json:thamanivar db sql.DBfunc main kosa kosadb, err sql.Openpostgres, useryour_user passwordyour_password dbnameyour_db sslmodelemazaikiwa makosa ! nil log.Fatalhitilafuahirisha db.Fungakipanga njia : mux.NewRouterrouter.HandleFuncrekodi, createRecord.NjiaPOSTrouter.HandleFuncrekodi, getRecords.NjiaGET.router.HandleFuncrecordsid, getRecord.NjiaGET.router.HandleFuncrecordsid, updateRecord.NjiaPUT.router.HandleFuncrecordsid, deleteRecord.NjiaFUTA.fmt.PrintlnSeva inayoendesha bandari 8000...log.Fatalhttp.ListenAndServe:8000, kipanga njiaBadilisha mtumiaji_wako, nenosiri_lako, na db_yako na kitambulisho chako halisi cha PostgreSQL.3. Ongeza vitendaji vya CRUD vya kushughulikia maombi ya HTTP:nendafunc createRecordw http.ResponseWriter, r http.Ombi var rekodi Rekodijson.NewDecoderr.Body.Simbuarekodistmt, err : db. TayarishaINGIZA rekodi jina, thamani THAMANI 1, 2 KITAmbulisho cha KURUDISHAikiwa makosa ! nil log.Fatalhitilafudefer stmt.Closeerr stmt.QueryRowrecord.Name, record.Value.Changanuarecord.IDikiwa makosa ! nil log.Fatalhitilafuw.Header.WekaAina ya Maudhui, programujsonjson.NewEncoderw.Simbarekodifunc getRecordsw http.ResponseWriter, r http.Ombi safu mlalo, kosa : db.QueryCHAGUA kitambulisho, jina, thamani KUTOKA rekodiikiwa makosa ! nil log.Fatalhitilafuahirisha safu.Fungavar rekodi Rekodikwa safu.Next var rekodi Rekodikosa : safu.Changanuarecord.ID, record.Name, record.Valueikiwa makosa ! nil log.Fatalhitilafurekodi ongeza rekodi, rekodiw.Header.WekaAina ya Maudhui, programujsonjson.NewEncoderw.Encoderekodifunc getRecordw http.ResponseWriter, r http.Ombi params : mux.Varsrid : paramsidvar rekodi Rekodistmt, err : db. TayarishaCHAGUA kitambulisho, jina, thamani KUTOKA rekodi WHERE id1ikiwa makosa ! nil log.Fatalhitilafudefer stmt.Closeerr stmt.QueryRowid.Changanuarecord.ID, record.Name, record.Valueikiwa makosa ! nil ikiwa kosa sql.ErrNoRows http.Hitilafuw, Rekodi haijapatikana, http.StatusNotFoundkurudilog.Fatalhitilafuw.Header.WekaAina ya Maudhui, programujsonjson.NewEncoderw.Simbarekodifunc updateRecordw http.ResponseWriter, r http.Ombi params : mux.Varsrid : paramsidvar rekodi Rekodijson.NewDecoderr.Body.Simbuarekodistmt, err : db.PrepareSASISHA rekodi SET name1, value2 WHERE id3ikiwa makosa ! nil log.Fatalhitilafudefer stmt.Closetokeo, kosa : stmt.Execrecord.Name, record.Value, idikiwa makosa ! nil log.FatalhitilafurowsAffected, err : result.RowsAffectedikiwa makosa ! nil log.Fatalhitilafuikiwa safu zimeathirika 0 http.Hitilafuw, Rekodi haijapatikana, http.StatusNotFoundkurudiw.AndikaKichwahttp.StatusOKfunc deleteRecordw http.ResponseWriter, r http.Ombi params : mux.Varsrid : paramsidstmt, err : db. TayarishaFUTA KUTOKA rekodi WAPI id1ikiwa makosa ! nil log.Fatalhitilafudefer stmt.Closematokeo, kosa : stmt.Execidikiwa makosa ! nil log.FatalhitilafurowsAffected, err : result.RowsAffectedikiwa makosa ! nil log.Fatalhitilafuikiwa safu zimeathirika 0 http.Hitilafuw, Rekodi haijapatikana, http.StatusNotFoundkurudiw.AndikaKichwahttp.StatusOK4. Endesha programu kwa go run main.go. Seva itaanza kwenye port 8000 na unaweza kutumia zana kama Postman au curl ili kujaribu miisho.Kumbuka: Hakikisha hifadhidata yako ya PostgreSQL ina jedwali linaloitwa rekodi lenye safu wima id, jina, na thamani. 