📚 Database Operations: Complete CRUD examples are in database/03-COMPLETE-EXAMPLES.md
📚 Utility Functions: All helper functions are in utilities/01-ESSENTIAL-UTILITIES.md
Note: These examples show the complete flow. For detailed database operations, see the database folder.
//export createResource
func createResource(e event.Event) uint32 {
h, err := e.HTTP()
if err != nil {
return 1
}
setCORSHeaders(h)
// Read request body
body, err := io.ReadAll(h.Body())
if err != nil {
h.Write([]byte("Failed to read request body"))
h.Return(400)
return 1
}
// Get database connection
db, err := database.New("/data")
if err != nil {
return handleHTTPError(h, err, 500)
}
defer db.Close()
// Generate unique key
key := fmt.Sprintf("/resource/%d", time.Now().UnixNano())
// Store data
err = db.Put(key, body)
if err != nil {
h.Write([]byte("Failed to store data"))
h.Return(500)
return 1
}
response := map[string]string{"id": key, "status": "created"}
return sendJSONResponse(h, response)
}//export getResource
func getResource(e event.Event) uint32 {
h, err := e.HTTP()
if err != nil {
return 1
}
setCORSHeaders(h)
// Get resource ID from path
id, err := h.Path().Get("id")
if err != nil {
h.Write([]byte("Missing resource ID"))
h.Return(400)
return 1
}
// Get database connection
db, err := database.New("/data")
if err != nil {
return handleHTTPError(h, err, 500)
}
defer db.Close()
// Get data
data, err := db.Get(fmt.Sprintf("/resource/%s", id))
if err != nil {
h.Write([]byte("Resource not found"))
h.Return(404)
return 1
}
h.Headers().Set("Content-Type", "application/json")
h.Write(data)
h.Return(200)
return 0
}//export listResources
func listResources(e event.Event) uint32 {
h, err := e.HTTP()
if err != nil {
return 1
}
setCORSHeaders(h)
// Get database connection
db, err := database.New("/data")
if err != nil {
return handleHTTPError(h, err, 500)
}
defer db.Close()
// List all resources
keys, err := db.List("/resource/")
if err != nil {
h.Write([]byte("Failed to list resources"))
h.Return(500)
return 1
}
return sendJSONResponse(h, keys)
}//export updateResource
func updateResource(e event.Event) uint32 {
h, err := e.HTTP()
if err != nil {
return 1
}
setCORSHeaders(h)
// Get resource ID from path
id, err := h.Path().Get("id")
if err != nil {
h.Write([]byte("Missing resource ID"))
h.Return(400)
return 1
}
// Read request body
body, err := io.ReadAll(h.Body())
if err != nil {
h.Write([]byte("Failed to read request body"))
h.Return(400)
return 1
}
// Get database connection
db, err := database.New("/data")
if err != nil {
return handleHTTPError(h, err, 500)
}
defer db.Close()
// Check if resource exists
_, err = db.Get(fmt.Sprintf("/resource/%s", id))
if err != nil {
h.Write([]byte("Resource not found"))
h.Return(404)
return 1
}
// Update data
err = db.Put(fmt.Sprintf("/resource/%s", id), body)
if err != nil {
h.Write([]byte("Failed to update resource"))
h.Return(500)
return 1
}
response := map[string]string{"id": id, "status": "updated"}
return sendJSONResponse(h, response)
}//export deleteResource
func deleteResource(e event.Event) uint32 {
h, err := e.HTTP()
if err != nil {
return 1
}
setCORSHeaders(h)
// Get resource ID from path
id, err := h.Path().Get("id")
if err != nil {
h.Write([]byte("Missing resource ID"))
h.Return(400)
return 1
}
// Get database connection
db, err := database.New("/data")
if err != nil {
return handleHTTPError(h, err, 500)
}
defer db.Close()
// Check if resource exists
_, err = db.Get(fmt.Sprintf("/resource/%s", id))
if err != nil {
h.Write([]byte("Resource not found"))
h.Return(404)
return 1
}
// Delete data
err = db.Delete(fmt.Sprintf("/resource/%s", id))
if err != nil {
h.Write([]byte("Failed to delete resource"))
h.Return(500)
return 1
}
h.Write([]byte("Resource deleted successfully"))
h.Return(200)
return 0
}- 07-ERROR-HANDLING.md - Error handling patterns
- 08-DATABASE-CRUD.md - Database operations
- 17-UTILITY-FUNCTIONS.md - Utility functions