{"id":23272838,"url":"https://github.com/fenguoz/articleservice","last_synced_at":"2025-04-06T10:16:52.051Z","repository":{"id":113459159,"uuid":"331899862","full_name":"Fenguoz/articleService","owner":"Fenguoz","description":"基于 Hyperf2.0 框架实现的文章服务","archived":false,"fork":false,"pushed_at":"2022-01-23T20:35:22.000Z","size":2462,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-12T15:45:03.155Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"PHP","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/Fenguoz.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,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-01-22T09:36:42.000Z","updated_at":"2023-03-29T02:29:53.000Z","dependencies_parsed_at":null,"dependency_job_id":"e91d3c57-6e4a-49f0-a599-d574d2f32f20","html_url":"https://github.com/Fenguoz/articleService","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fenguoz%2FarticleService","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fenguoz%2FarticleService/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fenguoz%2FarticleService/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fenguoz%2FarticleService/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Fenguoz","download_url":"https://codeload.github.com/Fenguoz/articleService/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247464228,"owners_count":20942970,"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":[],"created_at":"2024-12-19T19:19:46.481Z","updated_at":"2025-04-06T10:16:52.045Z","avatar_url":"https://github.com/Fenguoz.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e文章服务\u003c/h1\u003e\n\n## 概述\n\n文章服务是微服务就是一个独立的实体，它可以独立被部署，也可以作为一个操作系统进程存在。服务与服务之间存在隔离性，服务之间均通过网络调用进行通信，从而加强服务之间的隔离性，避免紧耦合。\n\n该服务基于 Hyperf2.0 框架实现。通过 JSON RPC 轻量级的 RPC 协议标准，可自定义基于 HTTP 协议来传输，或直接基于 TCP 协议来传输方式实现服务注册。客户端只需要通过协议标准直接调用已封装好的方法即可。\n\n适用范围：资讯、公告、新闻、帮助中心、用户协议、隐私协议、首页Bannner、广告、视频...\n\n## 环境要求\n\n- PHP \u003e= 7.2\n- Swoole PHP 扩展 \u003e= 4.5，并关闭了 `Short Name`\n- Mysql 5.7\n- Nginx\n- Consul\n\n## 特点\n\n- 自定义内置文章类型、文章分类类型\n- 支持多语言文章\n- 移动端多种打开方式\n- 支持跨语言调用\n\n## 功能清单\n\n- 文章\n    - 获取文章列表\n    - 获取文章列表分页信息\n    - 添加文章\n    - 编辑文章\n    - 删除文章\n    - 获取文章详情(根据主键ID)\n    - 获取文章详情(根据Key值)\n    - 获取文章类型\n- 文章分类\n    - 获取文章分类列表\n    - 获取文章分类列表分页信息\n    - 添加文章分类\n    - 编辑文章分类\n    - 删除文章分类\n    - 获取文章分类主键ID(根据key值)）\n    - 获取文章分类类型\n\n## 快速开始\n\n### 部署\n\n``` bash\n# 克隆项目\ngit clone ...\n\n# 进入根目录\ncd {file}\n\n# 安装扩展包\ncomposer install\n\n# 配置env文件\ncp .env.example .env\n\n# 数据迁移\nphp bin/hyperf.php migrate --seed\n\n# 运行 Consul（若已运行，忽略）\nconsul agent -dev -bind 127.0.0.1\n\n# 运行\nphp bin/hyperf.php start\n```\n\n### 接口调用\n\n查看 **可调用接口** 详情，请查看 Swagger 文档。\n\n访问路径：public/swagger/index.html\n\nswagger文件：public/swagger/openapi.json\n\nPHP 调用示例：\n``` php\nuse GuzzleHttp\\Client;\n\n$host = 'http://127.0.0.1:9801';\n(new Client)-\u003epost($host, [\n    'json' =\u003e [\n        'jsonrpc' =\u003e '2.0',\n        'method' =\u003e '/article/getTypes',\n        'params' =\u003e [],\n        'id' =\u003e 1,\n    ]\n]);\n```\n\nCURL 调用示例：\n``` bash\ncurl -X POST -H \"Content-Type: application/json\" \\\n--data '{\"jsonrpc\":\"2.0\",\"method\":\"/article/getTypes\",\"params\":[],\"id\":1}' \\\nhttp://127.0.0.1:9801\n```\n\n## 计划\n\n- 批量处理\n- 模型缓存\n- ...\n\n## 脚本命令\n| 命令行 | 说明 | crontab |\n| :-----| :---- | :---- |\n| composer install | 安装扩展包 | -- |\n| php bin/hyperf.php server:watch | 热更新（仅测试用） | -- |\n| php bin/hyperf.php swagger:gen -o ./public/swagger/ -f json | 生成swagger文档 | -- |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffenguoz%2Farticleservice","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffenguoz%2Farticleservice","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffenguoz%2Farticleservice/lists"}