1
0
mirror of https://github.com/ZSCNetSupportDept/website.git synced 2025-10-29 01:15:04 +08:00
Files
website/assets/js/b58a446f.2c740304.js

1 line
21 KiB
JavaScript

"use strict";(self.webpackChunkdeveloper_zsc=self.webpackChunkdeveloper_zsc||[]).push([[6681],{5104:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>h,contentTitle:()=>c,default:()=>a,frontMatter:()=>s,metadata:()=>l,toc:()=>o});const l=JSON.parse('{"id":"devdocs/\u57f9\u8bad/Web\u540e\u7aef/\u57fa\u4e8eHTTP\u7684Web\u540e\u7aef\u7684\u7ec4\u6210","title":"\u57fa\u4e8eHTTP\u7684Web\u540e\u7aef\u7684\u7ec4\u6210","description":"\u4e00\u4e2a\u57fa\u4e8eHTTP\u7684Web\u540e\u7aef\u901a\u5e38\u6709\u4ee5\u4e0b\u90e8\u5206\u7ec4\u6210:","source":"@site/docs/devdocs/09-\u57f9\u8bad/02-Web\u540e\u7aef/02-\u57fa\u4e8eHTTP\u7684Web\u540e\u7aef\u7684\u7ec4\u6210.md","sourceDirName":"devdocs/09-\u57f9\u8bad/02-Web\u540e\u7aef","slug":"/devdocs/\u57f9\u8bad/Web\u540e\u7aef/\u57fa\u4e8eHTTP\u7684Web\u540e\u7aef\u7684\u7ec4\u6210","permalink":"/docs/devdocs/\u57f9\u8bad/Web\u540e\u7aef/\u57fa\u4e8eHTTP\u7684Web\u540e\u7aef\u7684\u7ec4\u6210","draft":false,"unlisted":false,"editUrl":"https://github.com/ZSCNetSupportDept/website/tree/master/docs/devdocs/09-\u57f9\u8bad/02-Web\u540e\u7aef/02-\u57fa\u4e8eHTTP\u7684Web\u540e\u7aef\u7684\u7ec4\u6210.md","tags":[],"version":"current","lastUpdatedAt":1730548540000,"sidebarPosition":2,"frontMatter":{},"sidebar":"devdocs","previous":{"title":"Web\u540e\u7aef\u7684\u7b80\u5355\u4ecb\u7ecd","permalink":"/docs/devdocs/\u57f9\u8bad/Web\u540e\u7aef/Web\u540e\u7aef\u7684\u7b80\u5355\u4ecb\u7ecd"},"next":{"title":"\u9ad8\u7ea7\u6559\u7a0b","permalink":"/docs/devdocs/\u57f9\u8bad/Web\u540e\u7aef/\u9ad8\u7ea7\u6559\u7a0b"}}');var d=i(4848),r=i(8453);const s={},c="\u57fa\u4e8eHTTP\u7684Web\u540e\u7aef\u7684\u7ec4\u6210",h={},o=[{value:"\u8def\u7531\u7cfb\u7edf(router)",id:"\u8def\u7531\u7cfb\u7edfrouter",level:5},{value:"\u5904\u7406\u8005(handler)",id:"\u5904\u7406\u8005handler",level:5},{value:"\u6570\u636e\u5e93",id:"\u6570\u636e\u5e93",level:5},{value:"\u9274\u6743\u7cfb\u7edf",id:"\u9274\u6743\u7cfb\u7edf",level:5},{value:"\u6a21\u677f\u7cfb\u7edf\uff08optional\uff09",id:"\u6a21\u677f\u7cfb\u7edfoptional",level:5},{value:"\u53cd\u5411\u4ee3\u7406",id:"\u53cd\u5411\u4ee3\u7406",level:5},{value:"\u914d\u7f6e\u7cfb\u7edf",id:"\u914d\u7f6e\u7cfb\u7edf",level:5},{value:"CI/CD",id:"cicd",level:5},{value:"\u8def\u7531",id:"\u8def\u7531",level:2},{value:"URI\u53c2\u6570",id:"uri\u53c2\u6570",level:3},{value:"\u53c2\u6570\u5316\u8def\u5f84",id:"\u53c2\u6570\u5316\u8def\u5f84",level:3},{value:"API\u8bbe\u8ba1",id:"api\u8bbe\u8ba1",level:3},{value:"\u4f20\u7edf",id:"\u4f20\u7edf",level:4},{value:"REST",id:"rest",level:4},{value:"GraphQL",id:"graphql",level:4},{value:"handler",id:"handler",level:2},{value:"\u9762\u5411\u5bf9\u8c61\u4e0e\u6a21\u578b",id:"\u9762\u5411\u5bf9\u8c61\u4e0e\u6a21\u578b",level:3},{value:"\u6570\u636e\u5e93",id:"\u6570\u636e\u5e93-1",level:2},{value:"SQLite",id:"sqlite",level:3},{value:"PostgreSQL",id:"postgresql",level:3},{value:"\u9009\u62e9\u6570\u636e\u5e93\u7684\u5404\u79cd\u8003\u91cf",id:"\u9009\u62e9\u6570\u636e\u5e93\u7684\u5404\u79cd\u8003\u91cf",level:3},{value:"ORM",id:"orm",level:3},{value:"\u9274\u6743",id:"\u9274\u6743",level:2},{value:"Session",id:"session",level:3},{value:"JWT",id:"jwt",level:3},{value:"OAuth2.0",id:"oauth20",level:3},{value:"\u6a21\u677f",id:"\u6a21\u677f",level:2},{value:"Jinja2",id:"jinja2",level:3}];function t(e){const n={code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",header:"header",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.R)(),...e.components};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(n.header,{children:(0,d.jsx)(n.h1,{id:"\u57fa\u4e8ehttp\u7684web\u540e\u7aef\u7684\u7ec4\u6210",children:"\u57fa\u4e8eHTTP\u7684Web\u540e\u7aef\u7684\u7ec4\u6210"})}),"\n",(0,d.jsx)(n.p,{children:"\u4e00\u4e2a\u57fa\u4e8eHTTP\u7684Web\u540e\u7aef\u901a\u5e38\u6709\u4ee5\u4e0b\u90e8\u5206\u7ec4\u6210:"}),"\n",(0,d.jsx)(n.h5,{id:"\u8def\u7531\u7cfb\u7edfrouter",children:"\u8def\u7531\u7cfb\u7edf(router)"}),"\n",(0,d.jsx)(n.p,{children:"\u8def\u7531\u7cfb\u7edf\u8d1f\u8d23\u5904\u7406\u7528\u6237\u8bbf\u95ee\u7f51\u9875\u65f6\u7684\u8bf7\u6c42\u8def\u5f84/\u65b9\u6cd5\uff0c\u5e76\u8f6c\u4ea4\u7ed9\u5bf9\u5e94\u7684\u5904\u7406\u8005"}),"\n",(0,d.jsx)(n.h5,{id:"\u5904\u7406\u8005handler",children:"\u5904\u7406\u8005(handler)"}),"\n",(0,d.jsx)(n.p,{children:"\u5904\u7406\u8005\u8d1f\u8d23\u5904\u7406\u7528\u6237\u7684\u8bf7\u6c42\uff0c\u8bfb\u53d6\u7528\u6237\u5728URI\u4e2d\u7684\u53c2\u6570\uff0c\u548c\u8bf7\u6c42\u4f53\u4e2d\u7684\u5185\u5bb9\uff08\u5982\u679c\u6709\uff09\u7b49\uff0c\u7edf\u79f0\u4e3a\u4e0a\u4e0b\u6587(Context),\u8d1f\u8d23\u8fd4\u56de\u8bf7\u6c42\u6240\u5bf9\u5e94\u7684\u56de\u5e94"}),"\n",(0,d.jsx)(n.p,{children:"\u6709\u7684\u7cfb\u7edf\u8fd8\u4f1a\u7ee7\u7eed\u7ec6\u5206\uff0c\u5c06\u4e1a\u52a1\u5c42\u548c\u63a5\u53e3\u5c42\u5206\u5f00(\u8fd9\u79cd\u60c5\u51b5\u4e0b\u901a\u5e38\u63a5\u53e3\u5c42\u662f\u548c\u8def\u7531\u529f\u80fd\u5408\u5e76\u7684)"}),"\n",(0,d.jsx)(n.p,{children:(0,d.jsx)(n.em,{children:"\u6700\u4f4e\u8981\u6c42\u662f\u8fd9\u4e2a\uff0c\u53e6\u5916\uff0c\u901a\u5e38\u4e00\u4e2a\u540e\u7aef\u7cfb\u7edf\u8fd8\u9700\u8981\u8fde\u63a5\u4e00\u4e2a\u6570\u636e\u5e93:"})}),"\n",(0,d.jsx)(n.h5,{id:"\u6570\u636e\u5e93",children:"\u6570\u636e\u5e93"}),"\n",(0,d.jsx)(n.p,{children:"\u901a\u5e38\u662f\u517c\u5bb9SQL\u534f\u8bae\u7684\u5173\u7cfb\u578b\u6570\u636e\u5e93\uff0c\u8d1f\u8d23\u5b58\u50a8\u540e\u7aef\u6240\u9700\u8981\u7528\u5230\u548c\u4ea7\u751f\u7684\u4fe1\u606f"}),"\n",(0,d.jsx)(n.p,{children:(0,d.jsx)(n.em,{children:"\u5176\u5b9e\u5f88\u591a\u540e\u7aef\u7cfb\u7edf\u65e0\u975e\u5c31\u662f\u5bf9\u6570\u636e\u5e93\u7684\u589e\u5220\u6539\u67e5(\u6240\u8c13\u7684CRUD),\u53ef\u4ee5\u8bf4\u8fd9\u4e9b\u7cfb\u7edf\u5c31\u662f\u6570\u636e\u5e93\u7684\u4e00\u5c42\u65b9\u4fbfwrapper"})}),"\n",(0,d.jsx)(n.h5,{id:"\u9274\u6743\u7cfb\u7edf",children:"\u9274\u6743\u7cfb\u7edf"}),"\n",(0,d.jsx)(n.p,{children:"\u901a\u5e38\uff0c\u6211\u4eec\u7cfb\u7edf\u7684\u5185\u5bb9\u4e0d\u6253\u7b97\u5bf9\u4e92\u8054\u7f51\u4e0a\u7684\u4efb\u4f55\u4e00\u4e2a\u4eba\u5f00\u653e\uff0c\u6240\u4ee5\u6211\u4eec\u9700\u8981\u4e00\u4e9b\u65b9\u6cd5\u6765\u9a8c\u8bc1\u8bbf\u95ee\u8005\u7684\u8eab\u4efd"}),"\n",(0,d.jsx)(n.h5,{id:"\u6a21\u677f\u7cfb\u7edfoptional",children:"\u6a21\u677f\u7cfb\u7edf\uff08optional\uff09"}),"\n",(0,d.jsx)(n.p,{children:"\u5982\u679c\u4f60\u6253\u7b97\u901a\u8fc7\u540e\u7aef\u6e32\u67d3HTML\u8fd4\u56de\u5230\u7528\u6237\u6d4f\u89c8\u5668\uff0c\u90a3\u4f60\u9700\u8981\u4e00\u5957\u6a21\u677f\u6765\u65b9\u4fbf\u5730\u5c06\u52a8\u6001\u5185\u5bb9\u63d2\u5165\u5230\u6a21\u677f\u91cc\u9762\u8fd4\u56de\u7ed9\u7528\u6237\uff0c\u5982\u679c\u662f\u4e00\u4e2a\u7eaf\u7cb9API\u7684\u7ad9\u70b9\uff0c\u8fd8\u662f\u60f3\u76f4\u63a5\u628a\u5de5\u4f5c\u7529\u7ed9\u524d\u7aef\uff0c\u4f60\u5c31\u53ef\u4ee5\u4e0d\u7528\u914d\u7f6e\u6a21\u677f"}),"\n",(0,d.jsx)(n.p,{children:"\u6b64\u5916\uff0c\u8fd8\u6709\u4e00\u4e9b\u5916\u56f4\u7684\u5de5\u4f5c\uff1a"}),"\n",(0,d.jsx)(n.h5,{id:"\u53cd\u5411\u4ee3\u7406",children:"\u53cd\u5411\u4ee3\u7406"}),"\n",(0,d.jsx)(n.p,{children:"\u901a\u5e38\u6211\u4eec\u7684Web\u540e\u7aef\u670d\u52a1\u4e0d\u662f\u76f4\u63a5\u66b4\u9732\u5bf9\u5916\u8bbf\u95ee\u7684\uff0c\u800c\u662f\u7ecf\u8fc7\u4e00\u5c42\u4ee3\u7406\u7684\u8f6c\u53d1\uff0c\u8fd9\u6837\u66f4\u52a0\u7684\u5b89\u5168\uff0c\u914d\u7f6e\u4e5f\u66f4\u52a0\u7b80\u5355\uff0c\u670d\u52a1\u53ea\u9700\u8981\u76d1\u542c\u672c\u5730\u7aef\u53e3"}),"\n",(0,d.jsx)(n.h5,{id:"\u914d\u7f6e\u7cfb\u7edf",children:"\u914d\u7f6e\u7cfb\u7edf"}),"\n",(0,d.jsx)(n.p,{children:"\u4f60\u7684\u7cfb\u7edf\u9700\u8981\u8bfb\u53d6\u914d\u7f6e\uff0c\u6bd4\u5982\u76d1\u542c\u7aef\u53e3\uff0c\u6570\u636e\u5e93\u8fde\u63a5\uff0c\u8fd8\u6709\u5176\u4ed6\u670d\u52a1\u7684\u5bc6\u94a5\u7b49"}),"\n",(0,d.jsx)(n.h5,{id:"cicd",children:"CI/CD"}),"\n",(0,d.jsx)(n.p,{children:"\u81ea\u52a8\u5316\u914d\u7f6e\u6784\u5efa\uff0c\u90e8\u7f72\uff0c\u6d4b\u8bd5\u7b49\u5de5\u4f5c\uff0c\u8ba9\u4f60\u4e13\u6ce8\u4ee3\u7801\u5de5\u4f5c\uff0c\u800c\u4e0d\u7528\u628a\u5fc3\u601d\u8fc7\u591a\u5730\u653e\u5728\u90e8\u7f72\u6784\u5efa\u8fd9\u4e9b\u5de5\u4f5c\u4e0a\u9762"}),"\n",(0,d.jsx)(n.h2,{id:"\u8def\u7531",children:"\u8def\u7531"}),"\n",(0,d.jsxs)(n.p,{children:["\u5047\u8bbe\u4f60\u7684\u4e00\u4e2a\u62a5\u540d\u670d\u52a1\u67b6\u8bbe\u5728",(0,d.jsx)(n.code,{children:"service.io"}),"\u4e0a\uff1a"]}),"\n",(0,d.jsx)(n.p,{children:"\u9996\u5148\uff0c\u7528\u6237\u8bbf\u95ee\u8fd9\u4e2a\u7f51\u5740\u65f6\u9700\u8981\u663e\u793a\u4e00\u6bb5\u6b22\u8fce\u6587\u5b57\uff0c\u7136\u540e\u5c06\u4ed6\u4eec\u5f15\u5bfc\u5230\u62a5\u540d\u7684\u9875\u9762"}),"\n",(0,d.jsxs)(n.p,{children:["\u90a3\u4e48\uff0c\u4f60\u5e94\u8be5\u5728\u7528\u6237\u8bbf\u95ee",(0,d.jsx)(n.code,{children:"/"}),"\u65f6\u8fd4\u56de\u4e00\u4e2ahtml\u6587\u4ef6\uff0c\u91cc\u9762\u542b\u6709\u5bfc\u5411",(0,d.jsx)(n.code,{children:"/volunteer.html"}),"\u7684\u8d85\u94fe\u63a5"]}),"\n",(0,d.jsxs)(n.p,{children:[(0,d.jsx)(n.code,{children:"/volunteer.html"}),"\u91cc\u9762\u7684\u524d\u7aef\u4ee3\u7801\u9700\u8981\u4ee5AJAX\u7684\u5f62\u5f0f\u4e0e\u540e\u7aefAPI\u4ea4\u4e92\uff0c\u6bd4\u5982\uff1a"]}),"\n",(0,d.jsxs)(n.p,{children:[(0,d.jsx)(n.code,{children:"service.io/api/register"}),"\u63a5\u53d7POST\u8bf7\u6c42\uff0c\u524d\u7aef\u4e0a\u4f20\u62a5\u540d\u4eba\u7684\u4fe1\u606f\uff0c\u540e\u7aef\u5f55\u5165\u6570\u636e\u5e93,\u5e76\u8fd4\u56de\u5f55\u5165\u7684\u4fe1\u606f\uff0c\u5168\u90e8\u4ee5JSON\u5e8f\u5217\u5316"]}),"\n",(0,d.jsxs)(n.p,{children:[(0,d.jsx)(n.code,{children:"service.io/api/view"}),"\u63a5\u53d7GET\u8bf7\u6c42\uff0c\u8ba9\u8fd9\u4e2a\u62a5\u540d\u4eba\u67e5\u770b\u81ea\u5df1\u7684\u62a5\u540d\u4fe1\u606f\uff0c\u8fd4\u56deJSON\u683c\u5f0f"]}),"\n",(0,d.jsxs)(n.p,{children:[(0,d.jsx)(n.code,{children:"service.io/api/cancel"}),"\u63a5\u53d7POST\u8bf7\u6c42\uff0c\u53d6\u6d88\u67d0\u4e2a\u62a5\u540d\u4eba\u7684\u4fe1\u606f\uff0c\u6210\u529f\u5219\u8fd4\u56de\u76f8\u5e94\u72b6\u6001\u7801"]}),"\n",(0,d.jsxs)(n.p,{children:[(0,d.jsx)(n.code,{children:"service.io/admin/viewAll"}),"\u8ba9\u7ba1\u7406\u5458\u67e5\u770b\u5f53\u524d\u7684\u6240\u6709\u62a5\u540d\uff0c\u63a5\u53d7GET\u8bf7\u6c42"]}),"\n",(0,d.jsxs)(n.p,{children:[(0,d.jsx)(n.code,{children:"service.io/admin/cancel"}),"\u8ba9\u7ba1\u7406\u5458\u53d6\u6d88\u4efb\u610f\u7684\u62a5\u540d,\u63a5\u53d7\u7684POST"]}),"\n",(0,d.jsx)(n.p,{children:"\u5728\u73b0\u4ee3\u7f51\u7ad9\u8bbe\u8ba1\u4e2d\uff0c\u6211\u4eec\u4e0d\u662f\u5728\u6839\u76ee\u5f55\u4e0b\u9762\u521b\u5efa\u5bf9\u5e94\u7684\u6587\u4ef6\uff08\u5b9e\u9645\u4e0a\uff0c\u8fde\u6839\u76ee\u5f55\u90fd\u4e0d\u9700\u8981\u4e86\uff09\uff0c\u6211\u4eec\u4f7f\u7528\u4e00\u4e9b\u53eb\u505a\u201c\u8def\u7531\u5668(router)\u201d\u7684\u6a21\u5757,\u5f53\u7528\u6237\u901a\u8fc7\u4e00\u5b9a\u7684\u65b9\u6cd5\u8bf7\u6c42\u4e00\u5b9a\u7684\u8def\u5f84\u65f6\uff0c\u5c31\u628a\u8fd9\u4e9b\u8bf7\u6c42\u8f6c\u4ea4\u5230\u76f8\u5e94\u7684handler"}),"\n",(0,d.jsx)(n.h3,{id:"uri\u53c2\u6570",children:"URI\u53c2\u6570"}),"\n",(0,d.jsx)(n.p,{children:"\u53c2\u6570\u5728\u6b63\u5e38\u8def\u5f84\u540e\u9762\uff0c\u4ee5?\u5f00\u59cb\uff0c\u4ee5&\u5206\u5272\uff0c\u4ee5\u952e\u503c\u5bf9\u7684\u5f62\u5f0f\u5b58\u5728"}),"\n",(0,d.jsxs)(n.p,{children:["\u4f8b\u5982\uff1a",(0,d.jsx)(n.code,{children:"service.io/api/register?name=\u5c0f\u660e&phone=10000000000&freeday=2024-9-25"})]}),"\n",(0,d.jsx)(n.p,{children:"\u8fd9\u6837\u7684\u53c2\u6570\u53ef\u4ee5\u88ab\u8bb8\u591a\u540e\u7aef\u6846\u67b6\u4f7f\u7528\u5185\u7f6e\u7684\u89e3\u6790\u5668\u89e3\u6790"}),"\n",(0,d.jsx)(n.h3,{id:"\u53c2\u6570\u5316\u8def\u5f84",children:"\u53c2\u6570\u5316\u8def\u5f84"}),"\n",(0,d.jsx)(n.p,{children:"\u8fd9\u79cd\u8def\u5f84\u901a\u5e38\u662f\u914d\u5408REST\u98ce\u683c\u7684\u63a5\u53e3\u6765\u8bbe\u8ba1\u7684\uff0c\u6bd4\u5982\uff1a"}),"\n",(0,d.jsx)(n.p,{children:(0,d.jsx)(n.code,{children:"service.io/api/users/\u5c0f\u660e"})}),"\n",(0,d.jsxs)(n.p,{children:["\u7c7b\u4f3c\u4e8e\u8fd9\u6837\u7684\u8def\u5f84\uff0c\u8bb8\u591a\u540e\u7aef\u6846\u67b6\u53ef\u4ee5\u4f7f\u7528",(0,d.jsx)(n.code,{children:"service.io/api/users/:user"}),"\u8fd9\u6837\u7684\u5f62\u5f0f\u6765\u5339\u914d\uff0c\u5728\u8f6c\u4ea4\u7ed9\u7684handler\u4e2d\u53ef\u4ee5\u8bfb\u53d6",(0,d.jsx)(n.code,{children:":user"}),"\u53c2\u6570\uff0c\u4ece\u800c\u8fd4\u56de\u53c2\u6570\u6240\u6307\u5b9a\u7684\u8d44\u6e90"]}),"\n",(0,d.jsx)(n.h3,{id:"api\u8bbe\u8ba1",children:"API\u8bbe\u8ba1"}),"\n",(0,d.jsx)(n.p,{children:"API\u7684\u8bbe\u8ba1\u5305\u62ec\u4e86\u8def\u5f84\u7684\u8bbe\u8ba1\u548c\u63a5\u53e3\u683c\u5f0f\u7684\u8bbe\u8ba1\uff0c\u4e00\u822c\u5c0f\u9879\u76ee\u53ef\u4ee5\u76f8\u5bf9\u5730\u968f\u4fbf\u4e00\u70b9\uff0c\u4f46\u662f\u5927\u9879\u76ee\u8fd8\u662f\u9700\u8981\u8ba4\u771f\u4e00\u70b9\u7684"}),"\n",(0,d.jsx)(n.h4,{id:"\u4f20\u7edf",children:"\u4f20\u7edf"}),"\n",(0,d.jsxs)(n.p,{children:["\u6211\u4eec\u521a\u624d\u6240\u4e3e\u7684\u4f8b\u5b50\u5c31\u662f\u4e00\u4e2a\u4f20\u7edf\u7684API\u8bbe\u8ba1\uff0c\u4e00\u4e2a\u8def\u5f84\u5c31\u5bf9\u5e94\u4e86\u4e00\u4e2a\u4e1a\u52a1\u70b9\uff0c\u4e00\u822c\u53ea\u4f1a\u4f7f\u7528",(0,d.jsx)(n.code,{children:"GET"}),"\u548c",(0,d.jsx)(n.code,{children:"POST"}),"\u6765\u5bf9\u5e94\u83b7\u53d6\u548c\u4e0a\u4f20\uff0c\u524d\u540e\u7aef\u7684\u4ea4\u4e92\u4e00\u822c\u5728\u6587\u6863\u91cc\u81ea\u884c\u7ea6\u5b9a\uff0c\u6216\u8005\u91c7\u7528\u5185\u7f6e\u7684\u8868\u5355(\u5982\u679c\u6570\u636e\u6bd4\u8f83\u7b80\u5355\u7684\u8bdd)"]}),"\n",(0,d.jsx)(n.h4,{id:"rest",children:"REST"}),"\n",(0,d.jsx)(n.p,{children:"REST\u7684\u610f\u601d\u662f\u201c\u8868\u73b0\u5c42\u72b6\u6001\u8f6c\u6362\u201d\uff08\u82f1\u8bed\uff1aRepresentational State Transfer\uff0c\u7f29\u5199\uff1aREST\uff09\uff0c\u8fd9\u79cd\u98ce\u683c\u7684\u8981\u70b9\u662f\u4e00\u4e2aURI\u8868\u793a\u4e00\u4e2a\u8d44\u6e90\uff0c\u800c\u4e0d\u662f\u4e00\u4e2a\u4e1a\u52a1\uff0c\u540c\u65f6\u5145\u5206\u5730\u5229\u7528HTTP\u65b9\u6cd5"}),"\n",(0,d.jsxs)(n.p,{children:["\u4f8b\u5982\uff0c\u6211\u4eec\u5728\u524d\u9762\u5b9a\u4e49\u4e86",(0,d.jsx)(n.code,{children:"Register"}),",",(0,d.jsx)(n.code,{children:"View"}),"\u548c",(0,d.jsx)(n.code,{children:"Cancel"}),"\u4e09\u4e2aAPI,\u5982\u679c\u662f\u8981\u4e0a\u4f20\u4ec0\u4e48\u5c31\u7528",(0,d.jsx)(n.code,{children:"POST"}),"\uff0c\u83b7\u53d6",(0,d.jsx)(n.code,{children:"GET"}),",\u4e00\u4e2a\u8def\u5f84\u8868\u793a\u7684\u662f\u4e00\u4e2a\u4e1a\u52a1\uff0c\u800c\u4e0d\u662f\u7cfb\u7edf\u7684\u67d0\u4e2a\u8d44\u6e90\uff0c\u4e0b\u9762\u6765\u770b\u770bREST\u600e\u4e48\u5199\uff1a"]}),"\n",(0,d.jsxs)(n.p,{children:[(0,d.jsx)(n.code,{children:"POST service.io/api/users/\u5c0f\u660e"})," \u7528\u6237\u5c0f\u660e\u63d0\u4ea4\u4e00\u4e2a\u62a5\u540d\uff0c\u5177\u4f53\u7684\u62a5\u540d\u4fe1\u606f\u5728\u8bf7\u6c42\u4f53\u91cc\uff0c\u8fd9\u5c06\u5728\u6570\u636e\u5e93\u91cc\u9762\u521b\u5efa\u4e00\u4e2a\u5c0f\u660e\u7684\u62a5\u540d\u8bb0\u5f55"]}),"\n",(0,d.jsxs)(n.p,{children:[(0,d.jsx)(n.code,{children:"GET service.io/api/users/\u5c0f\u660e"})," \u7528\u6237\u5c0f\u660e\u67e5\u770b\u81ea\u5df1\u7684\u62a5\u540d\u4fe1\u606f"]}),"\n",(0,d.jsxs)(n.p,{children:[(0,d.jsx)(n.code,{children:"DELETE service.io/api/users/\u5c0f\u660e"})," \u53d6\u6d88\u5c0f\u660e\u7684\u62a5\u540d"]}),"\n",(0,d.jsxs)(n.p,{children:[(0,d.jsx)(n.code,{children:"PUT service.io/api/users/\u5c0f\u660e"})," \u4fee\u6539\u5c0f\u660e\u7684\u62a5\u540d\u4fe1\u606f\uff0c\u65b0\u4fe1\u606f\u653e\u5728\u8bf7\u6c42\u4f53\u91cc\u9762\u4e86"]}),"\n",(0,d.jsx)(n.p,{children:"\u53ef\u4ee5\u53d1\u73b0\uff0cREST\u98ce\u683c\u7684API\u53ef\u4ee5\u770b\u4f5c\u662f\u5bf9\u4f20\u7edf\u9759\u6001\u7f51\u9875\u4e92\u8054\u7f51\u7684\u56de\u5f52\uff0c\u8fd9\u79cd\u98ce\u683c\u76f4\u89c2\u7b80\u6d01\uff0c\u517c\u5bb9\u6027\u66f4\u597d\uff0c\u66f4\u52a0\u5229\u4e8e\u7f13\u5b58\u7b49"}),"\n",(0,d.jsx)(n.h4,{id:"graphql",children:"GraphQL"}),"\n",(0,d.jsx)(n.p,{children:"GraphQL\u662f\u4e00\u79cd\u7528\u4e8eAPI\u4ea4\u4e92\u7684\u67e5\u8be2\u8bed\u8a00\uff0c\u4ed6\u610f\u56fe\u89e3\u51b3\u63a5\u53e3\u683c\u5f0f\u5b9a\u4e49\u548c\u591a\u6b21\u67e5\u8be2\u5e26\u6765\u7684\u590d\u6742\u95ee\u9898"}),"\n",(0,d.jsx)(n.p,{children:"\u9996\u5148\uff0c\u540e\u7aef\u9700\u8981\u652f\u6301GraphQL,\u7136\u540e\uff0c\u524d\u7aef\u9700\u8981\u5728API\u8bf7\u6c42\u4e2d\u6ce8\u660e\u81ea\u5df1\u60f3\u540e\u7aef\u7528\u4ec0\u4e48\u683c\u5f0f\u5448\u73b0\u4ec0\u4e48\u60f3\u8981\u7684\u4fe1\u606f\uff0c\u8fd9\u6837\u5c31\u4e0d\u9700\u8981\u524d\u7aef\u591a\u6b21\u8bf7\u6c42\u4e0d\u540c\u7684\u4e1a\u52a1\u4e86"}),"\n",(0,d.jsx)(n.p,{children:"\u8fd9\u5bf9\u5927\u578b\u7cfb\u7edf\u6216\u8bb8\u6bd4\u8f83\u53cb\u597d\uff0c\u4f46\u662f\u5982\u679c\u53ea\u662f\u4e00\u4e9b\u5c0f\u9879\u76ee\u7684\u8bdd\uff0c\u8fd9\u53ef\u80fd\u6709\u4e9b\u590d\u6742\uff0c\u5177\u4f53\u53ef\u4ee5\u81ea\u5df1\u53bb\u4e86\u89e3"}),"\n",(0,d.jsx)(n.h2,{id:"handler",children:"handler"}),"\n",(0,d.jsx)(n.p,{children:"handler\u53ef\u4ee5\u8bf4\u662f\u4e00\u4e2a\u540e\u7aef\u7cfb\u7edf\u7684\u6838\u5fc3\u4e86\uff0c\u56e0\u4e3a\u4ed6\u4eec\u662f\u5b9e\u9645\u5904\u7406\u4e1a\u52a1\u7684\u5730\u65b9"}),"\n",(0,d.jsx)(n.h3,{id:"\u9762\u5411\u5bf9\u8c61\u4e0e\u6a21\u578b",children:"\u9762\u5411\u5bf9\u8c61\u4e0e\u6a21\u578b"}),"\n",(0,d.jsx)(n.p,{children:"\u867d\u7136\u53ef\u4ee5\u4f7f\u7528\u5176\u4ed6\u7684\u8303\u5f0f\uff0c\u4f46\u662f\u6700\u63a8\u8350\u7684\u662f\u4f9d\u636eOOP\u7684\u539f\u5219\uff0c\u5c06\u9700\u8981\u5904\u7406\u7684\u6a21\u578b\u5199\u6210\u5bf9\u8c61\uff0c\u5c06\u4e00\u7cfb\u5217\u64cd\u4f5c\u5199\u6210\u5bf9\u8c61\u7684\u65b9\u6cd5\n\u4f8b\u5982\uff0c\u62a5\u540d\u7cfb\u7edf\u672c\u8d28\u4e0a\u5c31\u662f\u5904\u7406\u201c\u62a5\u540d\u4eba\u201d\u8fd9\u4e2a\u5bf9\u8c61\u7684\u5404\u79cd\u64cd\u4f5c\uff0c\u6211\u4eec\u53ef\u4ee5\u5b9a\u4e49\uff1a"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-Go",children:"\ntype Volunteer struct{\n config.DB\n id int\n Name string\n Phone int\n FreeDay time.Time\n Note string\n}\n\nfunc (v *volunteer)Add()error{\n if err:=db.addVolunteer(v.MainConnection) err!=nil{\n return err\n }\n return nil\n}\n\n"})}),"\n",(0,d.jsx)(n.p,{children:"\u8981\u8bbe\u8ba1\u4e00\u4e2a\u767b\u8bb0\u62a5\u540d\u7684handler,\u5c31\u53ea\u9700\u8981\u5c06\u524d\u7aef\u53d1\u8fc7\u6765\u7684\u4fe1\u606f\u53cd\u5e8f\u5217\u5316\u5230Volunteer\u5bf9\u8c61\u91cc\uff0c\u7136\u540e\u8c03\u7528Add\u65b9\u6cd5\u5373\u53ef\uff0c\u8fd9\u79cd\u601d\u8def\u5c31\u53eb\u505a\u9762\u5411\u5bf9\u8c61"}),"\n",(0,d.jsx)(n.p,{children:"\u6240\u8bbe\u8ba1\u7684Volunteer\u548c\u4ed6\u7684\u4e00\u7cfb\u5217\u65b9\u6cd5\u5c31\u53eb\u505a\u201c\u6a21\u578b\u201d"}),"\n",(0,d.jsx)(n.h2,{id:"\u6570\u636e\u5e93-1",children:"\u6570\u636e\u5e93"}),"\n",(0,d.jsx)(n.p,{children:"\u6570\u636e\u5e93\u4e3a\u540e\u7aef\u7684\u4e1a\u52a1\u6570\u636e\u63d0\u4f9b\u4e86\u65b9\u4fbf\u7684\u5b58\u50a8\u548c\u67e5\u8be2\u670d\u52a1\uff0c\u8fd9\u91cc\u6307\u7684\u662f\u7ed3\u6784\u5316\u6570\u636e\uff0c\u5176\u4ed6\u9700\u6c42\u53ef\u4ee5\u53bb\u770b\u9ad8\u7ea7\u6559\u7a0b"}),"\n",(0,d.jsx)(n.h3,{id:"sqlite",children:"SQLite"}),"\n",(0,d.jsx)(n.p,{children:"\u8fd9\u662f\u4e2a\u8f7b\u91cf\u7ea7\u7684\u6570\u636e\u5e93\uff0c\u4e00\u4e2a\u6570\u636e\u5e93\u5c31\u662f\u4e00\u4e2a\u6587\u4ef6\uff0c\u901a\u5e38\u7528\u4e8e\u4e1a\u52a1\u91cf\u6bd4\u8f83\u5c0f\u7684\u573a\u666f\u6216\u8005\u662f\u672c\u5730\u5f00\u53d1\u7684\u573a\u666f"}),"\n",(0,d.jsx)(n.h3,{id:"postgresql",children:"PostgreSQL"}),"\n",(0,d.jsx)(n.p,{children:"\u8fd9\u4e2a\u53ef\u4ee5\u8bf4\u662f\u76ee\u524d\u6700\u5389\u5bb3\u7684\u5f00\u6e90\u6570\u636e\u5e93\u4e86\uff0c\u4e0d\u4ec5\u63d0\u4f9b\u4e86\u5e38\u89c4\u7684\u7ed3\u6784\u5316\u529f\u80fd\uff0c\u800c\u4e14\u5bf9\u4e8e\u4e00\u4e9b\u7b80\u5355\u7684\u975e\u7ed3\u6784\u5316\u5b58\u50a8\u9700\u6c42\u4e5f\u53ef\u4ee5\u80dc\u4efb\uff0c\u4f46\u662f\u672c\u8eab\u7684\u8d44\u6e90\u6d88\u8017\u662f\u6709\u70b9\u9ad8\u7684"}),"\n",(0,d.jsx)(n.h3,{id:"\u9009\u62e9\u6570\u636e\u5e93\u7684\u5404\u79cd\u8003\u91cf",children:"\u9009\u62e9\u6570\u636e\u5e93\u7684\u5404\u79cd\u8003\u91cf"}),"\n",(0,d.jsxs)(n.ul,{children:["\n",(0,d.jsx)(n.li,{children:"\u4e1a\u52a1\u91cf\uff1a\u5982\u679c\u4e1a\u52a1\u91cf\u6bd4\u8f83\u5c0f\u7684\u8bdd\uff0c\u5c31\u4f7f\u7528SQLite\u5427"}),"\n",(0,d.jsx)(n.li,{children:"\u517c\u5bb9\u6027\uff1a\u5982\u679c\u73b0\u6709\u7684\u73af\u5883\u548c\u4e1a\u52a1\u4f9d\u8d56\u4e8e\u67d0\u4e2a\u6570\u636e\u5e93\uff0c\u90a3\u4e48\u5c31\u7ee7\u7eed\u7528\u5427"}),"\n"]}),"\n",(0,d.jsx)(n.h3,{id:"orm",children:"ORM"}),"\n",(0,d.jsx)(n.p,{children:"ORM\u662f\u5bf9\u6570\u636e\u5e93\u7684\u4e00\u5c42\u62bd\u8c61\uff0c\u8ba9\u4f60\u4e13\u6ce8\u4e8e\u4e1a\u52a1\u903b\u8f91\u7684\u5f00\u53d1\uff0c\u800c\u4e0d\u7528\u62c5\u5fc3\u5177\u4f53\u7684\u6570\u636e\u5e93\u95ee\u9898\uff0c\u5982\u679c\u5bf9\u4e8e\u6027\u80fd\u6216\u8005\u5176\u4ed6\u7684\u65b9\u9762\u6ca1\u6709\u5f88\u5927\u7684\u9700\u6c42\u7684\u8bdd\uff0c\u5efa\u8bae\u5728\u4f60\u7684\u9879\u76ee\u91cc\u4f7f\u7528ORM"}),"\n",(0,d.jsx)(n.h2,{id:"\u9274\u6743",children:"\u9274\u6743"}),"\n",(0,d.jsx)(n.h3,{id:"session",children:"Session"}),"\n",(0,d.jsx)(n.h3,{id:"jwt",children:"JWT"}),"\n",(0,d.jsx)(n.h3,{id:"oauth20",children:"OAuth2.0"}),"\n",(0,d.jsx)(n.h2,{id:"\u6a21\u677f",children:"\u6a21\u677f"}),"\n",(0,d.jsx)(n.h3,{id:"jinja2",children:"Jinja2"})]})}function a(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,d.jsx)(n,{...e,children:(0,d.jsx)(t,{...e})}):t(e)}},8453:(e,n,i)=>{i.d(n,{R:()=>s,x:()=>c});var l=i(6540);const d={},r=l.createContext(d);function s(e){const n=l.useContext(r);return l.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(d):e.components||d:s(e.components),l.createElement(r.Provider,{value:n},e.children)}}}]);