{"id":23774456,"url":"https://github.com/reddingg/go-bookshelf","last_synced_at":"2026-04-04T05:30:16.875Z","repository":{"id":181454188,"uuid":"666787235","full_name":"reddingg/go-bookshelf","owner":"reddingg","description":"Bookshelf API with Golang (no database)","archived":false,"fork":false,"pushed_at":"2023-07-17T12:15:52.000Z","size":8,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-12-31T10:20:19.954Z","etag":null,"topics":["exercise","golang","golang-examples","golang-server","no-database","practice"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/reddingg.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-07-15T15:18:03.000Z","updated_at":"2023-07-26T06:13:09.000Z","dependencies_parsed_at":"2023-07-25T11:06:01.879Z","dependency_job_id":null,"html_url":"https://github.com/reddingg/go-bookshelf","commit_stats":null,"previous_names":["gerinmordekhai/go-bookshelf","dkhaii/go-bookshelf","reddingg/go-bookshelf"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reddingg%2Fgo-bookshelf","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reddingg%2Fgo-bookshelf/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reddingg%2Fgo-bookshelf/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reddingg%2Fgo-bookshelf/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/reddingg","download_url":"https://codeload.github.com/reddingg/go-bookshelf/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239964515,"owners_count":19725952,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["exercise","golang","golang-examples","golang-server","no-database","practice"],"created_at":"2025-01-01T06:14:32.442Z","updated_at":"2026-04-04T05:30:16.837Z","avatar_url":"https://github.com/reddingg.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Bookshelf API with Golang Native\nThis is a RESTful API for storing books with almost zero configuration, as it doesn't integrate with any database. Instead, this backend app utilizes an array to store all data. However, it's important to note that when the web server is turned off, the data will be lost permanently.\n\n## Prerequisites\n- Golang\n- gorilla/mux package\n\n## Setting Up Project \nPlease fork this repository first, then clone the repository that you have forked. You can clone your forked repository by using this following command:\n```\ngit clone https://github.com/YOUR GITHUB USERNAME/go-bookshelf.git\n```\n\nThis project written with native golang programming. No framework used in this project.\n\nTo support this application, I use [gorilla/mux](https://github.com/gorilla/mux). Gorilla Mux provides a powerful and flexible routing system, allowing you to define complex URL patterns, handle variables, and extract data from URLs easily. It supports both static and dynamic routing, making it suitable for a wide range of use cases.\n\n\nThen, open a terminal like bash, zsh, command prompt or powershell and change the directory to where the cloned file is located.  \n\nFinally, you can run the API with the following command:\n```\ngo build \u0026\u0026 ./\u003cthe .exe file\u003e\n```\nor\n\n```\ngo run main.go\n```\n\nThis project will run on `https://localhost:8080`\n\n\n## Testing the API\nYou can try to hit the API using the POSTMAN application.\n\n### API Endpoints\n| METHOD   | ENDPOINT                 | FUNCTION |\n| -------- | ------------------------ | ----------------------- |\n| [GET]    | `/api/v1`                | to see if the API works |\n| [POST]   | `/api/v1/book/insert`    | insert new book         |\n| [GET]    | `/api/v1/book/show-all`  | show all books          |\n| [GET]    | `/api/v1/book/find/{id}` | get book by id          |\n| [PUT]    | `/api/v1/edit/{id}`      | edit book by id         |\n| [DELETE] | `/api/v1/delete{id}`     | delete book by id       |\n\n### API Payload\n```json\n{\n    \"title\": string,\n    \"author\": string,\n    \"publisher\": string,\n    \"pageCount\": int,\n    \"readPage\": int,\n}\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freddingg%2Fgo-bookshelf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Freddingg%2Fgo-bookshelf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freddingg%2Fgo-bookshelf/lists"}