{"id":25171807,"url":"https://github.com/basemax/archiveapigo","last_synced_at":"2025-08-01T17:38:06.407Z","repository":{"id":182549661,"uuid":"655879297","full_name":"BaseMax/ArchiveAPIGo","owner":"BaseMax","description":"Archive API is a RESTful API built with the Go programming language and the Echo framework. It provides functionality to manage a file archive, including saving files, searching within files, adding captions and descriptions, assigning categories, editing files, deleting files, sorting and filtering files, user authentication, generating link.","archived":false,"fork":false,"pushed_at":"2025-03-21T23:23:36.000Z","size":418,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-28T17:08:04.366Z","etag":null,"topics":["api-restful","archive-go","go","go-archive","go-restful","restful","restful-api","restful-go"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BaseMax.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-06-19T19:58:34.000Z","updated_at":"2025-03-21T23:23:33.000Z","dependencies_parsed_at":"2023-07-21T00:02:18.883Z","dependency_job_id":null,"html_url":"https://github.com/BaseMax/ArchiveAPIGo","commit_stats":null,"previous_names":["basemax/archiveapigo"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BaseMax%2FArchiveAPIGo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BaseMax%2FArchiveAPIGo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BaseMax%2FArchiveAPIGo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BaseMax%2FArchiveAPIGo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BaseMax","download_url":"https://codeload.github.com/BaseMax/ArchiveAPIGo/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247080414,"owners_count":20880260,"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":["api-restful","archive-go","go","go-archive","go-restful","restful","restful-api","restful-go"],"created_at":"2025-02-09T09:22:10.376Z","updated_at":"2025-04-03T21:24:36.904Z","avatar_url":"https://github.com/BaseMax.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Archive API\n\nArchive API is a RESTful API built with the Go programming language and the Echo framework. It provides functionality to manage a file archive, including saving files, searching within files, adding captions and descriptions, assigning categories, editing files, deleting files, sorting and filtering files, user authentication, generating public links, and more.\n\n## Prerequisites\n\nBefore running the Archive API, ensure you have the following installed:\n\n- Go (version X.X.X)\n- Echo framework (version X.X.X)\n- Database system: PostgreSQL\n\n## Installation\n\nClone the repository:\n\n```shell\ngit clone https://github.com/BaseMax/ArchiveAPIGo.git\n```\n\nNavigate to the project directory:\n\n```shell\ncd ArchiveAPIGo\n```\n\nInstall dependencies:\n\n```shell\ngo mod download\n```\n\nSet up the database:\n\n- Create a new database in your chosen database system.\n- Update the database connection details in `config/config.go` or it's better to be inside `.env`.\n\nBuild and run the application:\n\n```shell\ngo run main.go\n```\n\nThe Archive API should now be running on http://localhost:8080.\n\n## API Endpoints\n\nThe following API endpoints are available:\n\n- `POST /login`: User login with username and password.\n- `POST /register`: User registration with username, email, and password.\n- `GET /files`: Get a list of all files with optional sorting and filtering parameters.\n- `GET /files/{id}`: Get details of a specific file by its ID.\n- `POST /files`: Upload a new file with optional caption, description, and category assignment.\n- `PUT /files/{id}`: Update the details of a specific file by its ID.\n- `DELETE /files/{id}`: Delete a specific file by its ID.\n- `GET /files/{id}/public-link`: Generate a public link for a specific file by its ID.\n- `GET /categories`: Get a list of all categories.\n- `GET /categories/{id}`: Get details of a specific category by its ID.\n- `POST /categories`: Create a new category.\n- `PUT /categories/{id}`: Update the details of a specific category by its ID.\n- `DELETE /categories/{id}`: Delete a specific category by its ID.\n- `GET /search?q={keyword}`: Search for files based on a keyword.\n- `GET /users/{id}`: Get details of a specific user by their ID.\n- `PUT /users/{id}`: Update the details of a specific user by their ID.\n- `DELETE /users/{id}`: Delete a specific user by their ID.\n\n## Authentication\n\nAuthentication is required for most API endpoints. To authenticate, include the Authorization header in your requests with a valid JWT token:\n\n```\nAuthorization: Bearer {token}\n```\n\nTo obtain a JWT token, make a POST request to /login with valid credentials.\n\n## License\n\nThis project is licensed under the GPL-3.0 License.\n\n**Authors:**\n\n- Amirhosein\n- Max Base\n\nCopyright 2023, Max Base\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbasemax%2Farchiveapigo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbasemax%2Farchiveapigo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbasemax%2Farchiveapigo/lists"}