
\n
\n
\n
\u516b\u5b57\u559c\u7528\u795e\u8d77\u540d\u5927\u5e08 API \u63a5\u53e3
\nAI/\u6a21\u578b \u57fa\u4e8e\u516b\u5b57\u547d\u7406\u548c\u4e94\u884c\u76f8\u751f\u76f8\u514b\u7406\u8bba \u5341\u5e74\u6a21\u578b\u79ef\u7d2f / \u4e09\u624d\u4e94\u683c\u6570\u7406 \u59d3\u540d / \u516b\u5b57\u547d\u7406
\n
\u63a5\u53e3\u8be6\u60c5: https://www.gugudata.com/api/details/name-generator
\n\u63a5\u53e3\u5730\u5740: https://api.gugudata.com/ai/name-generator?appkey={{appkey}}
\n\u8fd4\u56de\u683c\u5f0f: application/json; charset=utf-8
\n\u8bf7\u6c42\u65b9\u5f0f: POST
\n\u8bf7\u6c42\u534f\u8bae: HTTPS
\n\u8bf7\u6c42\u793a\u4f8b: https://api.gugudata.com/ai/name-generator?appkey={{appkey}}
\n\u6570\u636e\u9884\u89c8: https://www.gugudata.com/preview/name-generator
\n\u63a5\u53e3\u6d4b\u8bd5: https://api.gugudata.com/ai/name-generator/demo
\n| \u53c2\u6570\u540d | \n\u53c2\u6570\u7c7b\u578b | \n\u662f\u5426\u5fc5\u987b | \n\u9ed8\u8ba4\u503c | \n\u5907\u6ce8 | \n
|---|---|---|---|---|
| lastname | \nstring | \n\u662f | \n\n | \u59d3\u6c0f | \n
| gender | \nstring | \n\u662f | \n\n | \u6027\u522b\uff08\u7537/\u5973\uff09 | \n
| birthdatetime | \nstring | \n\u662f | \nN/A | \n\u516c\u5386\u51fa\u751f\u5e74\u6708\u65e5\u65f6\uff0c\u683c\u5f0f\uff1aYYYY \u5e74 MM \u6708 DD \u65e5 HH:MM | \n
| birthplace | \nstring | \n\u662f | \nN/A | \n\u51fa\u751f\u5730\u70b9\uff08\u7701\u5e02\uff09\uff0c\u7528\u4e8e\u89c4\u907f\u53ef\u80fd\u7684\u8c10\u97f3 | \n
| parentnames | \nstring | \n\u5426 | \n\n | \u7236\u6bcd\u59d3\u540d\uff08\u53ef\u9009\uff0c\u7528\u4e8e\u4eb2\u5b50\u97f3\u97f5\u642d\u914d\uff09 | \n
| avoidwords | \nstring | \n\u5426 | \n\n | \u53ef\u9009\u907f\u7528\u5b57\uff08\u53ef\u9009\uff0c\u591a\u4e2a\u5b57\u7528\u9017\u53f7\u5206\u9694\uff09 | \n
| \u53c2\u6570\u540d | \n\u53c2\u6570\u7c7b\u578b | \n\u5907\u6ce8 | \n
|---|---|---|
| DataStatus.StatusCode | \nint | \n\u63a5\u53e3\u8fd4\u56de\u72b6\u6001\u7801 | \n
| DataStatus.StatusDescription | \nstring | \n\u63a5\u53e3\u8fd4\u56de\u72b6\u6001\u8bf4\u660e | \n
| DataStatus.ResponseDateTime | \nstring | \n\u63a5\u53e3\u6570\u636e\u8fd4\u56de\u65f6\u95f4 | \n
| DataStatus.DataTotalCount | \nint | \n\u6b64\u6761\u4ef6\u4e0b\u7684\u603b\u6570\u636e\u91cf\uff0c\u4e00\u822c\u7528\u4e8e\u5206\u9875\u8ba1\u7b97 | \n
| Data | \nobject | \n\u63a5\u53e3\u8fd4\u56de\u7684\u5b8c\u6574 JSON \u6570\u636e\uff0c\u5305\u542b\u547d\u76d8\u5206\u6790\u3001\u5019\u9009\u540d\u5b57\u6e05\u5355\u3001\u6700\u4f73\u63a8\u8350\u3001\u6ce8\u610f\u4e8b\u9879\u7b49\u6240\u6709\u5b57\u6bb5\uff0c\u5177\u4f53\u53ef\u67e5\u770b DEMO \u63a5\u53e3 \u8fd4\u56de\u6570\u636e | \n
\n{\n \"Data\": {\n \"\u547d\u76d8\u5206\u6790\u6458\u8981\": \"\u738b\u59d3\u5973\u5a74\uff0c\u751f\u4e8e 2023 \u5e74 5 \u6708 12 \u65e5 14:30 \uff08\u7678\u536f\u5e74\u4e01\u5df3\u6708\u5e9a\u5348\u65e5\u7678\u672a\u65f6\uff09\u3002\u516b\u5b57\uff1a\u5e9a\u5348\uff08\u65e5\u4e3b\uff09\u3001\u4e01\u5df3\u3001\u7678\u536f\u3001\u7678\u672a\u3002\u65e5\u4e3b\u5e9a\u91d1\u751f\u4e8e\u5df3\u6708\u706b\u65fa\u4e4b\u5730\uff0c\u5931\u4ee4\uff1b\u5730\u652f\u5df3\u5348\u672a\u4e09\u4f1a\u706b\u5c40\uff0c\u706b\u52bf\u6781\u65fa\u514b\u91d1\uff1b\u5929\u5e72\u53cc\u7678\u6c34\u900f\u51fa\uff0c\u4f46\u6c34\u5f31\u96be\u5236\u706b\u3002\u5168\u5c40\u706b\u65fa\u571f\u71e5\uff0c\u91d1\u5f31\u65e0\u6839\uff0c\u4e3a\u8eab\u5f31\u683c\u5c40\u3002\u4e94\u884c\u5206\u6790\uff1a\u706b\u6781\u65fa\uff08\u5b98\u6740\uff09\uff0c\u571f\u65fa\uff08\u5370\u661f\uff09\uff0c\u91d1\u5f31\uff08\u65e5\u4e3b\uff09\uff0c\u6c34\u5f31\uff08\u98df\u4f24\uff09\uff0c\u6728\u4f11\uff08\u8d22\u661f\uff09\u3002\u559c\u7528\u795e\u4e3a\u9996\u9009\u6c34\uff08\u8c03\u5019\u964d\u6e29\u3001\u5236\u706b\u62a4\u91d1\uff09\uff0c\u6b21\u9009\u571f\uff08\u5316\u706b\u751f\u91d1\uff09\u3002\u5fcc\u795e\u4e3a\u706b\u3001\u6728\u3002\",\n \"\u5019\u9009\u540d\u5b57\u6e05\u5355\": [\n {\n \"\u59d3\u540d\u5168\u79f0\": \"\u738b\u6e05\u6db5\",\n \"\u6c49\u8bed\u62fc\u97f3\": \"W\u00e1ng Q\u012bngh\u00e1n\",\n \"\u4e94\u884c\u8865\u76ca\u5206\u6790\": \"\u8865\u6c34\uff08\u6e05\u3001\u6db5\u5747\u5c5e\u6c34\uff09\uff0c\u6c34\u80fd\u5236\u706b\u8c03\u5019\uff0c\u5e76\u751f\u52a9\u65e5\u4e3b\u5e9a\u91d1\",\n \"\u4e09\u624d\u4e94\u683c\u5206\u6790\": \"\u5929\u683c 5(\u571f)-\u4eba\u683c 16(\u571f)-\u5730\u683c 24(\u706b)-\u603b\u683c 28(\u91d1)-\u5916\u683c 13(\u706b)\u3002\u4e09\u624d\u914d\u7f6e\uff1a\u571f\u571f\u706b\u3002\u4eba\u683c 16 \u4e3a\u4e3b\u8fd0\uff0c\u539a\u91cd\u8f7d\u5fb7\u4e4b\u5409\u6570\uff1b\u603b\u683c 28 \u4e3a\u78e8\u94c1\u6210\u9488\u4e4b\u5409\u6570\uff0c\u4f46\u5730\u683c 24 \u548c\u5916\u683c 13 \u4e3a\u706b\uff0c\u9700\u6ce8\u610f\u706b\u65fa\u538b\u529b\u3002\u6574\u4f53\u6570\u7406\u5409\u51f6\uff1a\u5409\u591a\u4e8e\u51f6\uff08\u8bc4\u5206 92 \uff09\",\n \"\u7ecf\u5178\u51fa\u5904\": \"\u65e0\u7279\u5b9a\u5178\u7c4d\u51fa\u5904\uff0c\u4f46\u6e05\u6db5\u53d6\u81ea\u6e05\u6cc9\u6db5\u7389\u4e4b\u610f\uff0c\u7b26\u5408\u6c34\u8c61\u96c5\u97f5\",\n \"\u73b0\u4ee3\u5bd3\u610f\u89e3\u8bfb\": \"\u6e05\uff1a\u6e05\u6f88\u9ad8\u6d01\uff1b\u6db5\uff1a\u5305\u5bb9\u6db5\u517b\u3002\u540d\u5b57\u5bd3\u610f\u5973\u5b50\u51b0\u6e05\u7389\u6d01\u3001\u80f8\u6000\u5bbd\u5e7f\uff0c\u97f3\u97f5\u67d4\u7f8e\u6d41\u7545\"\n },\n {\n \"\u59d3\u540d\u5168\u79f0\": \"\u738b\u6c90\u7476\",\n \"\u6c49\u8bed\u62fc\u97f3\": \"W\u00e1ng M\u00f9y\u00e1o\",\n \"\u4e94\u884c\u8865\u76ca\u5206\u6790\": \"\u8865\u6c34\uff08\u6c90\u5c5e\u6c34\uff09\u3001\u8865\u91d1\uff08\u7476\u5c5e\u91d1\uff0c\u91d1\u751f\u6c34\u52a9\u7528\u795e\uff09\uff0c\u6c34\u91d1\u76f8\u751f\u5f3a\u5316\u8c03\u5019\",\n \"\u4e09\u624d\u4e94\u683c\u5206\u6790\": \"\u5929\u683c 5(\u571f)-\u4eba\u683c 13(\u706b)-\u5730\u683c 24(\u706b)-\u603b\u683c 28(\u91d1)-\u5916\u683c 16(\u571f)\u3002\u4e09\u624d\u914d\u7f6e\uff1a\u571f\u706b\u706b\u3002\u4eba\u683c 13 \u4e3a\u667a\u7565\u8d85\u7fa4\u4e4b\u5409\u6570\uff1b\u603b\u683c 28 \u4e3a\u5409\u6570\u3002\u4f46\u5730\u683c 24 \u706b\u65fa\uff0c\u9700\u7ed3\u5408\u516b\u5b57\u6ce8\u610f\u706b\u52bf\u3002\u6574\u4f53\u6570\u7406\u5409\u51f6\uff1a\u4e2d\u5409\uff08\u8bc4\u5206 91 \uff09\",\n \"\u7ecf\u5178\u51fa\u5904\": \"\u65e0\",\n \"\u73b0\u4ee3\u5bd3\u610f\u89e3\u8bfb\": \"\u6c90\uff1a\u6da6\u6cfd\u6c90\u6d74\uff1b\u7476\uff1a\u7f8e\u7389\u3002\u540d\u5b57\u5bd3\u610f\u5982\u6c90\u6625\u98ce\u3001\u6e29\u6da6\u5982\u7389\uff0c\u73b0\u4ee3\u611f\u5f3a\u4e14\u5973\u6027\u5316\"\n },\n {\n \"\u59d3\u540d\u5168\u79f0\": \"\u738b\u96e8\u5bb8\",\n \"\u6c49\u8bed\u62fc\u97f3\": \"W\u00e1ng Y\u01d4ch\u00e9n\",\n \"\u4e94\u884c\u8865\u76ca\u5206\u6790\": \"\u8865\u6c34\uff08\u96e8\u5c5e\u6c34\uff09\uff0c\u6c34\u4e3a\u7b2c\u4e00\u7528\u795e\uff0c\u76f4\u63a5\u8c03\u5019\u964d\u6e29\",\n \"\u4e09\u624d\u4e94\u683c\u5206\u6790\": \"\u5929\u683c 5(\u571f)-\u4eba\u683c 13(\u706b)-\u5730\u683c 18(\u91d1)-\u603b\u683c 22(\u6728)-\u5916\u683c 11(\u6728)\u3002\u4e09\u624d\u914d\u7f6e\uff1a\u571f\u706b\u91d1\u3002\u4eba\u683c 13 \u5409\uff1b\u5730\u683c 18 \u91d1\u5409\uff0c\u8865\u76ca\u65e5\u4e3b\uff1b\u603b\u683c 22 \u6728\u4e3a\u51f6\u6570\uff08\u79cb\u8349\u9022\u971c\uff09\uff0c\u4f46\u516b\u5b57\u5fcc\u6728\uff0c\u9700\u8c28\u614e\u3002\u6574\u4f53\u6570\u7406\u5409\u51f6\uff1a\u5409\u51f6\u53c2\u534a\uff08\u8bc4\u5206 90 \uff09\",\n \"\u7ecf\u5178\u51fa\u5904\": \"\u65e0\",\n \"\u73b0\u4ee3\u5bd3\u610f\u89e3\u8bfb\": \"\u96e8\uff1a\u7518\u9716\uff1b\u5bb8\uff1a\u5e1d\u738b\u5c45\u6240\u3002\u540d\u5b57\u5bd3\u610f\u5929\u964d\u798f\u6cfd\u3001\u5c0a\u8d35\u5927\u6c14\uff0c\u97f3\u97f5\u6291\u626c\u987f\u632b\"\n },\n {\n \"\u59d3\u540d\u5168\u79f0\": \"\u738b\u6eaa\u7136\",\n \"\u6c49\u8bed\u62fc\u97f3\": \"W\u00e1ng X\u012br\u00e1n\",\n \"\u4e94\u884c\u8865\u76ca\u5206\u6790\": \"\u8865\u6c34\uff08\u6eaa\u5c5e\u6c34\uff09\uff0c\u6c34\u5236\u706b\u8c03\u5019\uff0c\u7136\u5b57\u5c5e\u706b\u4f46\u4e3a\u865a\u8bcd\u5f71\u54cd\u5c0f\",\n \"\u4e09\u624d\u4e94\u683c\u5206\u6790\": \"\u5929\u683c 5(\u571f)-\u4eba\u683c 18(\u91d1)-\u5730\u683c 20(\u6c34)-\u603b\u683c 24(\u706b)-\u5916\u683c 13(\u706b)\u3002\u4e09\u624d\u914d\u7f6e\uff1a\u571f\u91d1\u6c34\u3002\u4eba\u683c 18 \u91d1\u5409\uff0c\u8865\u76ca\u65e5\u4e3b\uff1b\u5730\u683c 20 \u6c34\u5409\uff0c\u52a9\u7528\u795e\uff1b\u4f46\u603b\u683c 24 \u706b\u4e3a\u5fcc\u3002\u6574\u4f53\u6570\u7406\u5409\u51f6\uff1a\u4e2d\u5409\uff08\u8bc4\u5206 91 \uff09\",\n \"\u7ecf\u5178\u51fa\u5904\": \"\u65e0\",\n \"\u73b0\u4ee3\u5bd3\u610f\u89e3\u8bfb\": \"\u6eaa\uff1a\u6eaa\u6d41\uff1b\u7136\uff1a\u81ea\u7136\u4e4b\u6001\u3002\u540d\u5b57\u5bd3\u610f\u606c\u9759\u81ea\u7136\u3001\u6e05\u6f88\u7075\u52a8\uff0c\u7b26\u5408\u73b0\u4ee3\u7b80\u7ea6\u5ba1\u7f8e\"\n },\n {\n \"\u59d3\u540d\u5168\u79f0\": \"\u738b\u6c81\u6021\",\n \"\u6c49\u8bed\u62fc\u97f3\": \"W\u00e1ng Q\u00ecny\u00ed\",\n \"\u4e94\u884c\u8865\u76ca\u5206\u6790\": \"\u8865\u6c34\uff08\u6c81\u5c5e\u6c34\uff09\uff0c\u6c34\u4e3a\u7528\u795e\uff1b\u6021\u5c5e\u571f\uff0c\u571f\u80fd\u5316\u706b\u751f\u91d1\uff0c\u4e3a\u6b21\u7528\u795e\",\n \"\u4e09\u624d\u4e94\u683c\u5206\u6790\": \"\u5929\u683c 5(\u571f)-\u4eba\u683c 13(\u706b)-\u5730\u683c 17(\u91d1)-\u603b\u683c 21(\u6728)-\u5916\u683c 10(\u6c34)\u3002\u4e09\u624d\u914d\u7f6e\uff1a\u571f\u706b\u91d1\u3002\u4eba\u683c 13 \u5409\uff1b\u5730\u683c 17 \u91d1\u5409\uff0c\u8865\u65e5\u4e3b\uff1b\u5916\u683c 10 \u6c34\u51f6\uff08\u4e07\u4e8b\u7ec8\u5c40\uff09\uff0c\u4f46\u6c34\u4e3a\u7528\u795e\u53ef\u5316\u89e3\u3002\u6574\u4f53\u6570\u7406\u5409\u51f6\uff1a\u5409\u591a\u4e8e\u51f6\uff08\u8bc4\u5206 90 \uff09\",\n \"\u7ecf\u5178\u51fa\u5904\": \"\u65e0\",\n \"\u73b0\u4ee3\u5bd3\u610f\u89e3\u8bfb\": \"\u6c81\uff1a\u6e17\u900f\u6ecb\u6da6\uff1b\u6021\uff1a\u6109\u60a6\u5b89\u7136\u3002\u540d\u5b57\u5bd3\u610f\u5fc3\u65f7\u795e\u6021\u3001\u6e29\u5a49\u53ef\u4eba\uff0c\u97f3\u97f5\u67d4\u548c\"\n }\n ],\n \"\u6700\u4f73\u63a8\u8350\": [\n {\n \"\u59d3\u540d\": \"\u738b\u6e05\u6db5\",\n \"\u7efc\u5408\u8bc4\u5206\": 95,\n \"\u63a8\u8350\u7406\u7531\": \"\u4e94\u884c\u53cc\u6c34\u5f3a\u8865\u7528\u795e\uff0c\u6570\u7406\u4eba\u683c 16 \u5409\u3001\u603b\u683c 28 \u5409\uff0c\u97f3\u97f5\u5e73\u4ec4\u534f\u8c03\uff08\u9633\u5e73-\u9634\u5e73-\u9633\u5e73\uff09\uff0c\u65e0\u65b9\u8a00\u4e0d\u826f\u8c10\u97f3\uff08\u68c0\u6d4b\u5434\u8bed\u533a\uff1a\u82cf\u5dde\u8bdd\u65e0\u6b67\u97f3\uff09\uff0c\u5bd3\u610f\u9ad8\u96c5\u4e14\u91cd\u540d\u7387\u4f4e\"\n },\n {\n \"\u59d3\u540d\": \"\u738b\u6c90\u7476\",\n \"\u7efc\u5408\u8bc4\u5206\": 93,\n \"\u63a8\u8350\u7406\u7531\": \"\u6c34\u91d1\u76f8\u751f\u5951\u5408\u559c\u7528\uff0c\u6570\u7406\u4eba\u683c 13 \u667a\u7565\u5409\uff0c\u73b0\u4ee3\u611f\u5f3a\uff0c\u97f3\u5f8b\u4f18\u7f8e\uff08\u9633\u5e73-\u53bb\u58f0-\u9633\u5e73\uff09\uff0c\u907f\u7528\u5b57\u68c0\u67e5\u65e0\u8bef\"\n }\n ],\n \"\u6ce8\u610f\u4e8b\u9879\": \"1. \u516b\u5b57\u706b\u65fa\uff0c\u907f\u514d\u4f7f\u7528\u706b\u3001\u6728\u5c5e\u6027\u5b57\uff08\u5982\u708e\u3001\u7433\u3001\u68ee\u7b49\uff09\uff1b 2. \u5730\u683c\u6570\u7406 24 \u867d\u4e3a\u5409\u6570\uff0c\u4f46\u5c5e\u706b\uff0c\u9700\u7ed3\u5408\u540d\u5b57\u4e94\u884c\u5316\u89e3\uff1b 3. \u51fa\u751f\u5728\u82cf\u5dde\uff08\u5434\u8bed\u533a\uff09\uff0c\u5df2\u68c0\u6d4b\u5019\u9009\u540d\u5b57\u65e0\u5f53\u5730\u65b9\u8a00\u4e0d\u826f\u8c10\u97f3\uff08\u5982\u738b\u6c90\u7476\u5728\u82cf\u5dde\u8bdd\u4e2d\u65e0\u6b67\u4e49\uff09\uff1b 4. \u6240\u6709\u7528\u5b57\u5747\u7b26\u5408\u901a\u7528\u89c4\u8303\u6c49\u5b57\u8868\u4e00\u7ea7\u5b57\u5e93\u3002\"\n }\n}\n\n\n" }, { "author": { "url": "member/Parry", "name": "Parry", "avatar": "https://cdn.v2ex.com/avatar/1474/7ce6/35923_large.png?m=1767146301" }, "url": "t/1148872", "title": "PPT \u8f6c\u9ad8\u7cbe\u5ea6\u56fe\u7247 API \u63a5\u53e3", "id": "t/1148872", "date_published": "2025-07-30T14:35:33+00:00", "content_html": "PPT \u8f6c\u9ad8\u7cbe\u5ea6\u56fe\u7247 API \u63a5\u53e3
\n\u6587\u4ef6\u5904\u7406 / \u56fe\u7247\u5904\u7406\uff0c\u5c06 PPT \u6587\u4ef6\u8f6c\u6362\u4e3a\u56fe\u7247\u5e8f\u5217\u3002
\n
\u63a5\u53e3\u8be6\u60c5: https://www.gugudata.com/api/details/ppt-to-images
\n\u63a5\u53e3\u5730\u5740: https://api.gugudata.com/imagerecognition/ppt-to-images?appkey=YOUR_APPKEY
\n\u8fd4\u56de\u683c\u5f0f: application/json; charset=utf-8
\n\u8bf7\u6c42\u65b9\u5f0f: POST
\n\u8bf7\u6c42\u534f\u8bae: HTTPS
\n\u8bf7\u6c42\u793a\u4f8b: https://api.gugudata.com/imagerecognition/ppt-to-images?appkey=YOUR_APPKEY
\n\u6570\u636e\u9884\u89c8: https://www.gugudata.com/preview/ppt-to-images
\n\u63a5\u53e3\u6d4b\u8bd5: https://api.gugudata.com/imagerecognition/ppt-to-images/demo
\n| \u53c2\u6570\u540d | \n\u53c2\u6570\u7c7b\u578b | \n\u662f\u5426\u5fc5\u987b | \n\u9ed8\u8ba4\u503c | \n\u5907\u6ce8 | \n
|---|---|---|---|---|
| file | \nfile | \n\u662f | \n\n | PPT \u6587\u4ef6\uff0c\u652f\u6301 .ppt \u548c .pptx \u683c\u5f0f | \n
| \u53c2\u6570\u540d | \n\u53c2\u6570\u7c7b\u578b | \n\u5907\u6ce8 | \n
|---|---|---|
| DataStatus.RequestParameter | \nstring | \n\u8bf7\u6c42\u53c2\u6570\u5b57\u7b26\u4e32 | \n
| DataStatus.StatusCode | \nint | \n\u63a5\u53e3\u8fd4\u56de\u72b6\u6001\u7801 | \n
| DataStatus.StatusDescription | \nstring | \n\u63a5\u53e3\u8fd4\u56de\u72b6\u6001\u8bf4\u660e | \n
| DataStatus.ResponseDateTime | \nstring | \n\u63a5\u53e3\u6570\u636e\u8fd4\u56de\u65f6\u95f4 | \n
| DataStatus.DataTotalCount | \nint | \n\u8f6c\u6362\u540e\u7684\u56fe\u7247\u603b\u6570 | \n
| Data | \narray | \n\u8f6c\u6362\u540e\u7684\u56fe\u7247 URL \u6570\u7ec4\uff0c\u652f\u6301\u6c38\u4e45\u5b58\u50a8 | \n
\u7f51\u9875 URL \u8f6c Markdown API \u63a5\u53e3
\n\u7f51\u7ad9\u5de5\u5177 \u5c06\u4efb\u610f\u7f51\u9875 URL \u8f6c\u6362\u4e3a Markdown \u683c\u5f0f\u6587\u672c \u7f51\u9875\u5185\u5bb9\u63d0\u53d6 / \u7f51\u9875\u89e3\u6790 \u7f51\u7ad9\u5de5\u5177 / markdown
\n
\u63a5\u53e3\u8be6\u60c5: https://www.gugudata.com/api/details/url2markdown
\n\u63a5\u53e3\u5730\u5740: https://api.gugudata.com/websitetools/url2markdown
\n\u8fd4\u56de\u683c\u5f0f: application/json; charset=utf-8
\n\u8bf7\u6c42\u65b9\u5f0f: GET
\n\u8bf7\u6c42\u534f\u8bae: HTTPS
\n\u8bf7\u6c42\u793a\u4f8b: https://api.gugudata.com/websitetools/url2markdown?appkey=YOUR_APPKEY&url=https://www.example.com
\n\u6570\u636e\u9884\u89c8: https://www.gugudata.com/preview/url2markdown
\n\u63a5\u53e3\u6d4b\u8bd5: https://api.gugudata.com/websitetools/url2markdown/demo
\n| \u53c2\u6570\u540d | \n\u53c2\u6570\u7c7b\u578b | \n\u662f\u5426\u5fc5\u987b | \n\u9ed8\u8ba4\u503c | \n\u5907\u6ce8 | \n
|---|---|---|---|---|
| appkey | \nstring | \n\u662f | \nYOUR_APPKEY | \n\u4ed8\u8d39\u540e\u83b7\u53d6\u7684 APPKEY | \n
| url | \nstring | \n\u662f | \nhttps://www.example.com | \n\u9700\u8981\u8f6c\u6362\u7684\u7f51\u9875 URL \u5730\u5740\uff0c\u5fc5\u987b\u662f\u6709\u6548\u7684 HTTP \u6216 HTTPS \u94fe\u63a5 | \n
| \u53c2\u6570\u540d | \n\u53c2\u6570\u7c7b\u578b | \n\u5907\u6ce8 | \n
|---|---|---|
| DataStatus.StatusCode | \nint | \n\u63a5\u53e3\u8fd4\u56de\u72b6\u6001\u7801 | \n
| DataStatus.StatusDescription | \nstring | \n\u63a5\u53e3\u8fd4\u56de\u72b6\u6001\u8bf4\u660e | \n
| DataStatus.ResponseDateTime | \nstring | \n\u63a5\u53e3\u6570\u636e\u8fd4\u56de\u65f6\u95f4 | \n
| DataStatus.DataTotalCount | \nint | \n\u6b64\u6761\u4ef6\u4e0b\u7684\u603b\u6570\u636e\u91cf\uff0c\u4e00\u822c\u7528\u4e8e\u5206\u9875\u8ba1\u7b97 | \n
| Data | \nstring | \n\u7f51\u9875\u8f6c\u6362\u540e\u7684 Markdown \u683c\u5f0f\u5185\u5bb9 | \n
PPT \u8f6c\u9ad8\u7cbe\u5ea6 PDF API \u63a5\u53e3
\n\u56fe\u50cf/\u8f6c\u6362 \u5c06 PPT \u6587\u4ef6\u8f6c\u6362\u4e3a PDF \u6587\u6863 \u6587\u4ef6\u8f6c\u6362 / \u8d85\u9ad8\u7cbe\u5ea6\u4e0e\u8fd8\u539f\u5ea6 \u6587\u4ef6\u8f6c\u6362 / PDF \u3002
\n
\u63a5\u53e3\u8be6\u60c5: https://www.gugudata.com/api/details/ppt-to-pdf
\n\u63a5\u53e3\u5730\u5740: https://api.gugudata.com/imagerecognition/ppt-to-pdf?appkey={{YOUR_APPKEY}}
\n\u8fd4\u56de\u683c\u5f0f: application/json; charset=utf-8
\n\u8bf7\u6c42\u65b9\u5f0f: POST
\n\u8bf7\u6c42\u534f\u8bae: HTTPS
\n\u8bf7\u6c42\u793a\u4f8b: https://api.gugudata.com/imagerecognition/ppt-to-pdf?appkey={{YOUR_APPKEY}}
\n\u6570\u636e\u9884\u89c8: https://www.gugudata.com/preview/ppt-to-pdf
\n\u63a5\u53e3\u6d4b\u8bd5: https://api.gugudata.com/imagerecognition/ppt-to-pdf/demo
\n| \u53c2\u6570\u540d | \n\u53c2\u6570\u7c7b\u578b | \n\u662f\u5426\u5fc5\u987b | \n\u9ed8\u8ba4\u503c | \n\u5907\u6ce8 | \n
|---|---|---|---|---|
| file | \nfile | \n\u662f | \n\n | PPT \u6587\u4ef6\uff0c\u652f\u6301 .ppt \u548c .pptx \u683c\u5f0f | \n
| \u53c2\u6570\u540d | \n\u53c2\u6570\u7c7b\u578b | \n\u5907\u6ce8 | \n
|---|---|---|
| DataStatus.RequestParameter | \nstring | \n\u8bf7\u6c42\u53c2\u6570\u5b57\u7b26\u4e32 | \n
| DataStatus.StatusCode | \nint | \n\u63a5\u53e3\u8fd4\u56de\u72b6\u6001\u7801 | \n
| DataStatus.StatusDescription | \nstring | \n\u63a5\u53e3\u8fd4\u56de\u72b6\u6001\u8bf4\u660e | \n
| DataStatus.ResponseDateTime | \nstring | \n\u63a5\u53e3\u6570\u636e\u8fd4\u56de\u65f6\u95f4 | \n
| Data | \nstring | \n\u8f6c\u6362\u540e\u7684 PDF \u6587\u4ef6\u4e0b\u8f7d URL \uff0c\u652f\u6301\u6c38\u4e45\u5b58\u50a8 | \n
\u4f7f\u7528 Uptime Kuma \u76d1\u63a7\u4e00\u4e9b\u670d\u52a1\uff0c\u671f\u671b\u53ef\u4ee5\u53ca\u65f6\u7684\u6536\u5230\u901a\u77e5\u3002\u76ee\u524d\u770b\u914d\u5408 iOS \u5feb\u6377\u6307\u4ee4 + \u77ed\u4fe1\u81ea\u52a8\u5316\u53ef\u4ee5\u5b8c\u7f8e\u5b9e\u73b0\u3002\u4f46\u662f\u76ee\u524d\u963f\u91cc\u4e91\u77ed\u4fe1\u670d\u52a1\u5bf9\u4e2a\u4eba\u5f00\u53d1\u8005\u5ba1\u6838\u4f53\u9a8c\u5f88\u5dee\uff0c\u8fd0\u8425\u5546\u4e5f\u5404\u79cd\u9650\u5236\u548c\u53d1\u9001\u5931\u8d25\u3002
\n\u76ee\u524d\u597d\u7528\u7684\u90ae\u7bb1\u670d\u52a1\uff0c\u5e26\u77ed\u4fe1\u901a\u77e5\u7684\u6709\u54ea\u4e9b\uff1f\u6536\u8d39\u548c\u4ed8\u8d39\u90fd\u53ef\u4ee5\u3002\u76ee\u524d\u67e5\u5230 139 \u90ae\u7bb1\u53ef\u4ee5\uff0c\u4f46\u662f\u9650\u5236\u79fb\u52a8\u53f7\u7801\u3002
\n" }, { "author": { "url": "member/Parry", "name": "Parry", "avatar": "https://cdn.v2ex.com/avatar/1474/7ce6/35923_large.png?m=1767146301" }, "url": "t/1118341", "title": "\u5168\u7403 QS \u4e16\u754c\u5927\u5b66\u6392\u540d\u6570\u636e API \u63a5\u53e3", "id": "t/1118341", "date_published": "2025-03-14T02:10:09+00:00", "content_html": "\u5168\u7403 QS \u4e16\u754c\u5927\u5b66\u6392\u540d\u6570\u636e API \u63a5\u53e3\n\u9ad8\u7b49\u6559\u80b2\uff0c\u8be6\u7ec6\u6392\u540d\u6307\u6807\u548c\u5f97\u5206\u4fe1\u606f\uff0c\u5168\u7403\u6392\u540d\uff0c\u9ad8\u7b49\u6559\u80b2\u3002
\n
\u63a5\u53e3\u8be6\u60c5: https://www.gugudata.com/api/details/global-university-ranking
\n\u63a5\u53e3\u5730\u5740: https://api.gugudata.com/metadata/global-university-ranking
\n\u8fd4\u56de\u683c\u5f0f: application/json; charset=utf-8
\n\u8bf7\u6c42\u65b9\u5f0f: GET
\n\u8bf7\u6c42\u534f\u8bae: HTTPS
\n\u8bf7\u6c42\u793a\u4f8b: https://api.gugudata.com/metadata/global-university-ranking?appkey=YOUR_APPKEY&name=&pageIndex=1&pageSize=10
\n\u6570\u636e\u9884\u89c8: https://www.gugudata.com/preview/global-university-ranking
\n\u63a5\u53e3\u6d4b\u8bd5: https://api.gugudata.com/metadata/global-university-ranking/demo
\n| \u53c2\u6570\u540d | \n\u53c2\u6570\u7c7b\u578b | \n\u662f\u5426\u5fc5\u987b | \n\u9ed8\u8ba4\u503c | \n\u5907\u6ce8 | \n
|---|---|---|---|---|
| appkey | \nstring | \n\u662f | \nYOUR_APPKEY | \n\u4ed8\u8d39\u540e\u83b7\u53d6\u7684 APPKEY | \n
| name | \nstring | \n\u5426 | \n\n | \u5b66\u6821\u540d\u79f0\uff0c\u652f\u6301\u6a21\u7cca\u641c\u7d22\uff0c\u4e0d\u4f20\u5219\u8fd4\u56de\u6240\u6709\u6570\u636e | \n
| pageindex | \nint | \n\u5426 | \n1 | \n\u5206\u9875\u53c2\u6570\uff0c\u7b2c\u51e0\u9875\uff0c\u9ed8\u8ba4\u503c\u4e3a 1 | \n
| pagesize | \nint | \n\u5426 | \n10 | \n\u5206\u9875\u53c2\u6570\uff0c\u6bcf\u9875\u6761\u6570\uff0c\u53d6\u503c\u8303\u56f4\u5728 1 ~ 20 \u4e4b\u95f4\uff08\u542b\uff09 | \n
| \u53c2\u6570\u540d | \n\u53c2\u6570\u7c7b\u578b | \n\u5907\u6ce8 | \n
|---|---|---|
| DataStatus.RequestParameter | \nstring | \n\u8bf7\u6c42\u53c2\u6570\u5b57\u7b26\u4e32 | \n
| DataStatus.StatusCode | \nint | \n\u63a5\u53e3\u8fd4\u56de\u72b6\u6001\u7801 | \n
| DataStatus.StatusDescription | \nstring | \n\u63a5\u53e3\u8fd4\u56de\u72b6\u6001\u8bf4\u660e | \n
| DataStatus.ResponseDateTime | \nstring | \n\u63a5\u53e3\u6570\u636e\u8fd4\u56de\u65f6\u95f4 | \n
| DataStatus.DataTotalCount | \nint | \n\u6b64\u6761\u4ef6\u4e0b\u7684\u603b\u6570\u636e\u91cf\uff0c\u4e00\u822c\u7528\u4e8e\u5206\u9875\u8ba1\u7b97 | \n
| Data.Id | \nstring | \n\u5495\u5495\u6570\u636e\u5e73\u53f0\u5927\u5b66\u552f\u4e00\u6807\u8bc6 | \n
| Data.UniversityName | \nstring | \n\u5927\u5b66\u540d\u79f0 | \n
| Data.Region | \nstring | \n\u6240\u5728\u5730\u533a | \n
| Data.Country | \nstring | \n\u6240\u5728\u56fd\u5bb6 | \n
| Data.City | \nstring | \n\u6240\u5728\u57ce\u5e02 | \n
| Data.LogoUrl | \nstring | \n\u5927\u5b66 Logo \u56fe\u7247\u5730\u5740 | \n
| Data.Rank | \nstring | \n\u7efc\u5408\u6392\u540d | \n
| Data.AcademicReputationRank | \nstring | \n\u5b66\u672f\u58f0\u8a89\u6392\u540d | \n
| Data.AcademicReputationScore | \nstring | \n\u5b66\u672f\u58f0\u8a89\u5f97\u5206 | \n
| Data.CitationsPerFacultyRank | \nstring | \n\u6bcf\u540d\u6559\u5e08\u7684\u5f15\u7528\u7387\u6392\u540d | \n
| Data.CitationsPerFacultyScore | \nstring | \n\u6bcf\u540d\u6559\u5e08\u7684\u5f15\u7528\u7387\u5f97\u5206 | \n
| Data.FacultyStudentRatioRank | \nstring | \n\u5e08\u751f\u6bd4\u4f8b\u6392\u540d | \n
| Data.FacultyStudentRatioScore | \nstring | \n\u5e08\u751f\u6bd4\u4f8b\u5f97\u5206 | \n
| Data.EmployerReputationRank | \nstring | \n\u96c7\u4e3b\u58f0\u8a89\u6392\u540d | \n
| Data.EmployerReputationScore | \nstring | \n\u96c7\u4e3b\u58f0\u8a89\u5f97\u5206 | \n
| Data.EmploymentOutcomesRank | \nstring | \n\u5c31\u4e1a\u6210\u679c\u6392\u540d | \n
| Data.EmploymentOutcomesScore | \nstring | \n\u5c31\u4e1a\u6210\u679c\u5f97\u5206 | \n
| Data.InternationalStudentRatioRank | \nstring | \n\u56fd\u9645\u5b66\u751f\u6bd4\u4f8b\u6392\u540d | \n
| Data.InternationalStudentRatioScore | \nstring | \n\u56fd\u9645\u5b66\u751f\u6bd4\u4f8b\u5f97\u5206 | \n
| Data.InternationalResearchNetworkRank | \nstring | \n\u56fd\u9645\u7814\u7a76\u7f51\u7edc\u6392\u540d | \n
| Data.InternationalResearchNetworkScore | \nstring | \n\u56fd\u9645\u7814\u7a76\u7f51\u7edc\u5f97\u5206 | \n
| Data.InternationalFacultyRatioRank | \nstring | \n\u56fd\u9645\u6559\u5e08\u6bd4\u4f8b\u6392\u540d | \n
| Data.InternationalFacultyRatioScore | \nstring | \n\u56fd\u9645\u6559\u5e08\u6bd4\u4f8b\u5f97\u5206 | \n
| Data.SustainabilityRank | \nstring | \n\u53ef\u6301\u7eed\u53d1\u5c55\u6392\u540d | \n
| Data.SustainabilityScore | \nstring | \n\u53ef\u6301\u7eed\u53d1\u5c55\u5f97\u5206 | \n
\u76f2\u6d3e\u516b\u5b57\u63a8\u7406 API \u6570\u636e\u63a5\u53e3
\nAI / \u516b\u5b57\u547d\u7406 \u57fa\u4e8e\u516b\u5b57\u547d\u7406\u5206\u6790 \u547d\u7406\u5206\u6790 / \u516b\u5b57\u8fd0\u52bf\u3002
\n
\u63a5\u53e3\u8be6\u60c5: https://www.gugudata.com/api/details/bazi-fortune-teller
\n\u63a5\u53e3\u5730\u5740: https://api.gugudata.com/ai/bazi-fortune-teller?appkey={{appkey}}
\n\u8fd4\u56de\u683c\u5f0f: application/json; charset=utf-8
\n\u8bf7\u6c42\u65b9\u5f0f: POST
\n\u8bf7\u6c42\u534f\u8bae: HTTPS
\n\u8bf7\u6c42\u793a\u4f8b: https://api.gugudata.com/ai/bazi-fortune-teller?appkey={{appkey}}
\n\u6570\u636e\u9884\u89c8: https://www.gugudata.com/preview/bazi-fortune-teller
\n\u63a5\u53e3\u6d4b\u8bd5: https://api.gugudata.com/ai/bazi-fortune-teller/demo
\n| \u53c2\u6570\u540d | \n\u53c2\u6570\u7c7b\u578b | \n\u662f\u5426\u5fc5\u987b | \n\u9ed8\u8ba4\u503c | \n\u5907\u6ce8 | \n
|---|---|---|---|---|
| appkey | \nstring | \n\u662f | \n\n | \u4ed8\u8d39\u540e\u83b7\u53d6\u7684 APPKEY | \n
| userinfo | \nstring | \n\u662f | \nN/A | \n\u7528\u6237\u8f93\u5165\u7684\u4e2a\u4eba\u4fe1\u606f\uff0c\u5305\u62ec\u6027\u522b\u3001\u516c\u5386\u6216\u8005\u519c\u5386\u51fa\u751f\u65e5\u671f\u53ca\u51fa\u751f\u65f6\u95f4 | \n
| \u53c2\u6570\u540d | \n\u53c2\u6570\u7c7b\u578b | \n\u5907\u6ce8 | \n
|---|---|---|
| DataStatus.RequestParameter | \nstring | \n\u8bf7\u6c42\u7684\u53c2\u6570 | \n
| DataStatus.StatusCode | \nint | \n\u63a5\u53e3\u8fd4\u56de\u72b6\u6001\u7801 | \n
| DataStatus.StatusDescription | \nstring | \n\u63a5\u53e3\u8fd4\u56de\u72b6\u6001\u8bf4\u660e | \n
| DataStatus.ResponseDateTime | \nstring | \n\u63a5\u53e3\u6570\u636e\u8fd4\u56de\u65f6\u95f4 | \n
| Data.\u516b\u5b57 | \nstring | \n\u516b\u5b57\u6392\u76d8\u7ed3\u679c | \n
| Data.\u4e94\u884c | \nstring | \n\u4e94\u884c\u5c5e\u6027\u5206\u6790 | \n
| Data.\u547d\u5bab | \nstring | \n\u547d\u5bab\u4fe1\u606f | \n
| Data.\u8eab\u5bab | \nstring | \n\u8eab\u5bab\u4fe1\u606f | \n
| Data.\u5927\u8fd0 | \narray | \n\u6bcf\u4e2a\u9636\u6bb5\u7684\u5927\u8fd0\u4fe1\u606f\uff0c\u5305\u62ec\u8d77\u59cb\u5e74\u4efd\u3001\u7ec8\u6b62\u5e74\u4efd\u548c\u8fd0\u52bf\u540d\u79f0 | \n
| Data.\u8fd0\u52bf\u5206\u6790 | \nobject | \n\u5b66\u4e1a\u3001\u5a5a\u59fb\u3001\u8d22\u8fd0\u3001\u5065\u5eb7\u3001\u4f53\u8c8c\u7279\u5f81\u53ca\u5173\u952e\u4e8b\u4ef6\u5206\u6790 | \n
| Data.\u7efc\u5408\u8bc4\u4ef7 | \nstring | \n\u603b\u4f53\u8fd0\u52bf\u8bc4\u4ef7 | \n
URL \u751f\u6210\u7f51\u7ad9\u622a\u56fe API \u6570\u636e\u63a5\u53e3
\n\u7f51\u7ad9\u5de5\u5177 / \u622a\u56fe \u9ad8\u6548\u751f\u6210\u7f51\u9875\u622a\u56fe \u751f\u6210\u7f51\u9875\u622a\u56fe / \u56fe\u7247\u8f93\u51fa\u3002
\n
\u63a5\u53e3\u8be6\u60c5: https://www.gugudata.com/api/details/url2image
\n\u63a5\u53e3\u5730\u5740: https://api.gugudata.com/websitetools/url2image
\n\u8fd4\u56de\u683c\u5f0f: application/json; charset=utf-8
\n\u8bf7\u6c42\u65b9\u5f0f: GET
\n\u8bf7\u6c42\u534f\u8bae: HTTPS
\n\u8bf7\u6c42\u793a\u4f8b: https://api.gugudata.com/websitetools/url2image?appkey=YOUR_APPKEY&url=YOUR_VALUE&width=250&height=250&viewportWidth=1080&viewportHeight=1080&forceReload=false&isMobile=false&isFullPage=false&isDarkMode=false
\n\u6570\u636e\u9884\u89c8: https://www.gugudata.com/preview/url2image
\n\u63a5\u53e3\u6d4b\u8bd5: https://api.gugudata.com/websitetools/url2image/demo
\n| \u53c2\u6570\u540d | \n\u53c2\u6570\u7c7b\u578b | \n\u662f\u5426\u5fc5\u987b | \n\u9ed8\u8ba4\u503c | \n\u5907\u6ce8 | \n
|---|---|---|---|---|
| appkey | \nstring | \n\u662f | \nYOUR_APPKEY | \n\u4ed8\u8d39\u540e\u83b7\u53d6\u7684 APPKEY | \n
| url | \nstring | \n\u662f | \nYOUR_VALUE | \n\u9700\u8981\u622a\u53d6\u7684\u7f51\u9875 URL \u5730\u5740 | \n
| width | \nint | \n\u5426 | \n250 | \n\u8f93\u51fa\u622a\u56fe\u7684\u5bbd\u5ea6\uff0c\u9ed8\u8ba4\u503c\u4e3a 250 | \n
| height | \nint | \n\u5426 | \n250 | \n\u8f93\u51fa\u622a\u56fe\u7684\u9ad8\u5ea6\uff0c\u9ed8\u8ba4\u503c\u4e3a 250 | \n
| viewportwidth | \nint | \n\u5426 | \n1080 | \n\u6e32\u67d3\u89c6\u7a97\u7684\u5bbd\u5ea6\uff0c\u9ed8\u8ba4\u503c\u4e3a 1080 | \n
| viewportheight | \nint | \n\u5426 | \n1080 | \n\u6e32\u67d3\u89c6\u7a97\u7684\u9ad8\u5ea6\uff0c\u9ed8\u8ba4\u503c\u4e3a 1080 | \n
| forcereload | \nboolean | \n\u5426 | \nfalse | \n\u5f3a\u5236\u91cd\u65b0\u52a0\u8f7d\u7f13\u5b58\u7684\u56fe\u7247\uff0c\u9ed8\u8ba4\u503c\u4e3a false | \n
| ismobile | \nboolean | \n\u5426 | \nfalse | \n\u662f\u5426\u4ee5\u79fb\u52a8\u8bbe\u5907\u7684 User Agent \u6e32\u67d3\uff0c\u9ed8\u8ba4\u503c\u4e3a false | \n
| isfullpage | \nboolean | \n\u5426 | \nfalse | \n\u662f\u5426\u622a\u53d6\u6574\u4e2a\u9875\u9762\u800c\u975e\u89c6\u7a97\u88c1\u526a\uff0c\u9ed8\u8ba4\u503c\u4e3a false | \n
| isdarkmode | \nboolean | \n\u5426 | \nfalse | \n\u662f\u5426\u4f18\u5148\u91c7\u7528\u6df1\u8272\u6a21\u5f0f\uff0c\u9ed8\u8ba4\u503c\u4e3a false | \n
| \u53c2\u6570\u540d | \n\u53c2\u6570\u7c7b\u578b | \n\u5907\u6ce8 | \n
|---|---|---|
| DataStatus.StatusCode | \nint | \n\u63a5\u53e3\u8fd4\u56de\u72b6\u6001\u7801 | \n
| DataStatus.StatusDescription | \nstring | \n\u63a5\u53e3\u8fd4\u56de\u72b6\u6001\u8bf4\u660e | \n
| DataStatus.ResponseDateTime | \nstring | \n\u63a5\u53e3\u6570\u636e\u8fd4\u56de\u65f6\u95f4 | \n
| DataStatus.DataTotalCount | \nint | \n\u6b64\u6761\u4ef6\u4e0b\u7684\u603b\u6570\u636e\u91cf\uff0c\u4e00\u822c\u7528\u4e8e\u5206\u9875\u8ba1\u7b97 | \n
| Data | \nstring | \n\u751f\u6210\u7684\u622a\u56fe\u56fe\u7247\u6d41\uff0c\u53ef\u76f4\u63a5\u7528\u4e8e\u5c55\u793a | \n
URL \u8f6c\u9759\u6001 HTML \u6587\u4ef6 API \u6570\u636e\u63a5\u53e3
\n\u7f51\u7ad9\u5de5\u5177 / HTML \u9ad8\u6548\u8f6c\u6362 URL \u5230\u9759\u6001 HTML \u751f\u6210\u9759\u6001 HTML \u7ad9\u70b9 / \u6c38\u4e45\u5b58\u50a8\u3002
\n
\u652f\u6301\u975e SPA \u7f51\u7ad9\u5185\u5bb9\u8f6c\u6362\uff1b\n\u8d85\u9ad8\u7684\u8fd8\u539f\u5ea6\u4e0e\u8f6c\u6362\u6027\u80fd\uff1b\n\u7ad9\u70b9\u8d44\u6e90\u538b\u7f29\u5230\u4e00\u4e2a\u5355\u4e00\u7684\u6587\u4ef6\uff1b\n\u8f93\u51fa HTML \u6587\u4ef6\u6c38\u4e45 CDN \u5b58\u50a8\u5730\u5740\uff1b\n\u8f93\u51fa\u53ef\u76f4\u63a5\u8bbf\u95ee\u7684 HTML \u7ad9\u70b9\u6587\u4ef6\uff1b
\n\u63a5\u53e3\u8be6\u60c5: https://www.gugudata.com/api/details/url2html
\n\u63a5\u53e3\u5730\u5740: https://api.gugudata.com/websitetools/url2html
\n\u8fd4\u56de\u683c\u5f0f: application/json; charset=utf-8
\n\u8bf7\u6c42\u65b9\u5f0f: POST
\n\u8bf7\u6c42\u534f\u8bae: HTTPS
\n\u8bf7\u6c42\u793a\u4f8b: https://api.gugudata.com/websitetools/url2html
\n\u6570\u636e\u9884\u89c8: https://www.gugudata.com/preview/url2html
\n\u63a5\u53e3\u6d4b\u8bd5: https://api.gugudata.com/websitetools/url2html/demo
\n| \u53c2\u6570\u540d | \n\u53c2\u6570\u7c7b\u578b | \n\u662f\u5426\u5fc5\u987b | \n\u9ed8\u8ba4\u503c | \n\u5907\u6ce8 | \n
|---|---|---|---|---|
| appkey | \nstring | \n\u662f | \nYOUR_APPKEY | \n\u4ed8\u8d39\u540e\u83b7\u53d6\u7684 APPKEY | \n
| url | \nstring | \n\u662f | \nYOUR_VALUE | \n\u9700\u8981\u8f6c\u6362\u7684\u7f51\u9875 URL \u5730\u5740\uff0c\u6ce8\u610f SPA \u7c7b\u7ad9\u70b9\u53ef\u80fd\u6709\u83b7\u53d6\u4e0d\u5230\u9875\u9762\u5185\u5bb9\u7684\u60c5\u51b5 | \n
| \u53c2\u6570\u540d | \n\u53c2\u6570\u7c7b\u578b | \n\u5907\u6ce8 | \n
|---|---|---|
| DataStatus.StatusCode | \nint | \n\u63a5\u53e3\u8fd4\u56de\u72b6\u6001\u7801 | \n
| DataStatus.StatusDescription | \nstring | \n\u63a5\u53e3\u8fd4\u56de\u72b6\u6001\u8bf4\u660e | \n
| DataStatus.ResponseDateTime | \nstring | \n\u63a5\u53e3\u6570\u636e\u8fd4\u56de\u65f6\u95f4 | \n
| DataStatus.DataTotalCount | \nint | \n\u6b64\u6761\u4ef6\u4e0b\u7684\u603b\u6570\u636e\u91cf\uff0c\u4e00\u822c\u7528\u4e8e\u5206\u9875\u8ba1\u7b97 | \n
| Data | \nstring | \n\u751f\u6210\u7684 HTML \u6587\u4ef6 CDN \u5730\u5740 | \n
PDF \u8f6c HTML API \u6570\u636e\u63a5\u53e3
\n\u6587\u4ef6\u5904\u7406 / PDF \u9ad8\u6548 PDF \u8f6c HTML \u5de5\u5177 \u751f\u6210 HTML \u7ad9\u70b9 / \u53ef\u6c38\u4e45\u5b58\u50a8\u3002
\n
\u63a5\u53e3\u8be6\u60c5: https://www.gugudata.com/api/details/pdf2html
\n\u63a5\u53e3\u5730\u5740: https://api.gugudata.com/imagerecognition/pdf2html?appkey={{appkey}}
\n\u8fd4\u56de\u683c\u5f0f: application/json; charset=utf-8
\n\u8bf7\u6c42\u65b9\u5f0f: POST
\n\u8bf7\u6c42\u534f\u8bae: HTTPS
\n\u8bf7\u6c42\u793a\u4f8b: https://api.gugudata.com/imagerecognition/pdf2html?appkey={{appkey}}
\n\u6570\u636e\u9884\u89c8: https://www.gugudata.com/preview/pdf2html
\n\u63a5\u53e3\u6d4b\u8bd5: https://api.gugudata.com/imagerecognition/pdf2html/demo
\n| \u53c2\u6570\u540d | \n\u53c2\u6570\u7c7b\u578b | \n\u662f\u5426\u5fc5\u987b | \n\u9ed8\u8ba4\u503c | \n\u5907\u6ce8 | \n
|---|---|---|---|---|
| file | \nfile | \n\u662f | \nYOUR_VALUE | \nformdata \u6587\u4ef6\u6d41 | \n
| \u53c2\u6570\u540d | \n\u53c2\u6570\u7c7b\u578b | \n\u5907\u6ce8 | \n
|---|---|---|
| DataStatus.StatusCode | \nint | \n\u63a5\u53e3\u8fd4\u56de\u72b6\u6001\u7801 | \n
| DataStatus.StatusDescription | \nstring | \n\u63a5\u53e3\u8fd4\u56de\u72b6\u6001\u8bf4\u660e | \n
| DataStatus.ResponseDateTime | \nstring | \n\u63a5\u53e3\u6570\u636e\u8fd4\u56de\u65f6\u95f4 | \n
| DataStatus.DataTotalCount | \nint | \n\u6b64\u6761\u4ef6\u4e0b\u7684\u603b\u6570\u636e\u91cf\uff0c\u4e00\u822c\u7528\u4e8e\u5206\u9875\u8ba1\u7b97 | \n
| Data | \nstring | \n\u751f\u6210\u7684 HTML \u6587\u4ef6 CDN \u5730\u5740 | \n
\u6211\u60f3\u8f93\u5165\u4e00\u5f20\u622a\u5c4f\u56fe\u7247\u548c\u4e00\u4e2a\u7528\u81ea\u7136\u8bed\u8a00\u63cf\u8ff0\u7684\u76ee\u6807\uff0c\u8fd4\u56de\u76ee\u6807\u7684\u7cbe\u786e\u5750\u6807\u3002
\n\u6bd4\u5982\u8f93\u5165\n{\"https://ooo.0x0.ooo/2024/10/28/OD3TzB.png\", \"\u53d1\u5e03\u6309\u94ae\"}
\n\u8fd4\u56de\n(517,880)
\n" }, { "author": { "url": "member/huage", "name": "huage", "avatar": "https://cdn.v2ex.com/avatar/162a/2584/69678_large.png?m=1700057630" }, "url": "t/1081633", "title": "\u6709\u54ea\u4e9b\u5f00\u6e90\u7a0b\u5e8f\u53ef\u4ee5\u5feb\u901f\u6784\u5efa API \u670d\u52a1", "id": "t/1081633", "date_published": "2024-10-18T15:03:53+00:00", "content_html": "\u76ee\u524d\u6709\u4e00\u4e2a\u9700\u6c42\uff0c\u5728\u4e92\u8054\u7f51\u4e0a\u53d1\u5e03\u4e00\u4e2a API \u63a5\u53e3\uff0c\u7528\u4e8e\u7ed9\u5ba2\u6237\u7684\u4e00\u4e2a\u6d4b\u8bd5\u7a0b\u5e8f\u6765\u8c03\u7528\u3002\u76ee\u524d\u6709\u54ea\u4e9b\u6bd4\u8f83\u6210\u719f\u5ea6\u7a33\u5b9a\u7684\u5f00\u6e90\u7a0b\u5e8f\u53ef\u4ee5\u5feb\u901f\u7684\u53d1\u5e03\u63a5\u53e3\u670d\u52a1\uff1f" }, { "author": { "url": "member/teli", "name": "teli", "avatar": "https://cdn.v2ex.com/gravatar/e2d0410ad1743108f0131e1ccb3ac0c6?s=73&d=retro" }, "url": "t/1075825", "title": "\u4e00\u4e2a GET API URL \u8bbe\u8ba1\u7684\u6709\u8da3\u95ee\u9898", "id": "t/1075825", "date_published": "2024-09-25T14:35:53+00:00", "content_html": "\u8be5 GET URL \u7528\u6765\u83b7\u53d6\u67d0\u8d44\u6e90\u7a0b\u5e8f\u5185\u60f3\u8981\u8c03\u7528 Midjourney API, \u6700\u597d\u662f\u56fd\u5185\u80fd\u591f\u8bbf\u95ee\u7684, \u8c22\u8c22\u5404\u4f4d v \u53cb\u4e86.
\n" }, { "author": { "url": "member/sxms77777", "name": "sxms77777", "avatar": "https://cdn.v2ex.com/avatar/dfbb/ae38/647495_large.png?m=1711420124" }, "url": "t/1064578", "title": "\u5144\u5f1f\u4eec\uff0c\u80fd\u63a8\u8350\u4e2a\u690d\u7269\u6570\u636e\u5e93\u5417", "id": "t/1064578", "date_published": "2024-08-13T03:25:35+00:00", "content_html": "\u60f3\u641e\u4e2a\u690d\u7269\u76f8\u5173 app \uff0c\u8bb0\u5f55\u6d47\u6c34\u65f6\u95f4\u5565\u7684\u3002\u4f46\u662f\u690d\u7269\u4fe1\u606f\u4e0d\u77e5\u9053\u4ece\u54ea\u91cc\u83b7\u53d6\u3002\u5144\u5f1f\u4eec\u6709\u77e5\u9053\u7684\u690d\u7269\u6570\u636e\u5e93\u5417
\n" }, { "author": { "url": "member/Parry", "name": "Parry", "avatar": "https://cdn.v2ex.com/avatar/1474/7ce6/35923_large.png?m=1767146301" }, "url": "t/1064014", "title": "HTML \u8f6c PDF API \u63a5\u53e3", "id": "t/1064014", "date_published": "2024-08-10T09:24:20+00:00", "content_html": "HTML \u8f6c PDF API \u63a5\u53e3
\n\u652f\u6301\u7f51\u9875\u8f6c PDF \u3002
\n
API \u8be6\u60c5\u5730\u5740: https://www.gugudata.com/api/details/html2pdf
\n\u63a5\u53e3\u8bf7\u6c42\u5730\u5740: https://api.gugudata.com/imagerecognition/html2pdf
\n\u8fd4\u56de\u683c\u5f0f: application/json; charset=utf-8
\n\u8bf7\u6c42\u65b9\u5f0f: POST
\n\u8bf7\u6c42\u534f\u8bae: HTTPS
\n\u8bf7\u6c42\u793a\u4f8b: https://api.gugudata.com/imagerecognition/html2pdf
\n\u6570\u636e\u9884\u89c8: https://www.gugudata.com/preview/html2pdf
\n\u63a5\u53e3\u6d4b\u8bd5: https://api.gugudata.com/imagerecognition/html2pdf/demo
\n| \u53c2\u6570\u540d | \n\u53c2\u6570\u7c7b\u578b | \n\u662f\u5426\u5fc5\u987b | \n\u9ed8\u8ba4\u503c | \n\u5907\u6ce8 | \n
|---|---|---|---|---|
| appkey | \nstring | \n\u662f | \nYOUR_APPKEY | \n\u4ed8\u8d39\u540e\u83b7\u53d6\u7684 APPKEY | \n
| type | \nstring | \n\u662f | \nYOUR_VALUE | \n\u53ef\u9009\u53c2\u6570\u4e3a HTML \u6216 URL | \n
| content | \nstring | \n\u662f | \nYOUR_VALUE | \n\u5185\u5bb9\u6b63\u6587\uff0c\u5982\u679c type=HTML \uff0c\u90a3\u4e48\u4f20\u9012 HTML \u5185\u5bb9\uff1b\u5982\u679c type=URL \uff0c\u90a3\u4e48\u4f20\u9012\u9700\u8981\u5b58\u50a8\u4e3a PDF \u7684\u7ad9\u70b9 URL \u5373\u53ef | \n
| \u53c2\u6570\u540d | \n\u53c2\u6570\u7c7b\u578b | \n\u5907\u6ce8 | \n
|---|---|---|
| DataStatus.StatusCode | \nint | \n\u63a5\u53e3\u8fd4\u56de\u72b6\u6001\u7801 | \n
| DataStatus.StatusDescription | \nstring | \n\u63a5\u53e3\u8fd4\u56de\u72b6\u6001\u8bf4\u660e | \n
| DataStatus.ResponseDateTime | \nstring | \n\u63a5\u53e3\u6570\u636e\u8fd4\u56de\u65f6\u95f4 | \n
| DataStatus.DataTotalCount | \nint | \n\u6b64\u6761\u4ef6\u4e0b\u7684\u603b\u6570\u636e\u91cf\uff0c\u4e00\u822c\u7528\u4e8e\u5206\u9875\u8ba1\u7b97 | \n
| Data | \nstring | \n\u8f6c\u6362\u540e\u7684 PDF \u6c38\u4e45\u94fe\u63a5 | \n
\u8003\u9898\u76f8\u4f3c\u5ea6 AI \u5206\u6790 API \u6570\u636e\u63a5\u53e3
\n\u57fa\u4e8e AI \u7684\u76f8\u4f3c\u5ea6\u8bc4\u4f30\uff0c\u4e13\u6709 AI \u6a21\u578b\uff0c\u5305\u542b\u8bc4\u4f30\u8be6\u60c5 \u3002
\n
\u63a5\u53e3\u8be6\u60c5: https://www.gugudata.com/api/details/exam-question-similarity
\n\u63a5\u53e3\u5730\u5740: https://api.gugudata.com/education/exam-question-similarity
\n\u8fd4\u56de\u683c\u5f0f: application/json; charset=utf-8
\n\u8bf7\u6c42\u65b9\u5f0f: POST
\n\u8bf7\u6c42\u534f\u8bae: HTTPS
\n\u8bf7\u6c42\u793a\u4f8b: https://api.gugudata.com/education/exam-question-similarity
\n\u6570\u636e\u9884\u89c8: https://www.gugudata.com/preview/exam-question-similarity
\n\u63a5\u53e3\u6d4b\u8bd5: https://api.gugudata.com/education/exam-question-similarity/demo
\n| \u53c2\u6570\u540d | \n\u53c2\u6570\u7c7b\u578b | \n\u662f\u5426\u5fc5\u987b | \n\u9ed8\u8ba4\u503c | \n\u5907\u6ce8 | \n
|---|---|---|---|---|
| appkey | \nstring | \n\u662f | \nYOUR_APPKEY | \n\u4ed8\u8d39\u540e\u83b7\u53d6\u7684 APPKEY | \n
| exam1 | \nstring | \n\u662f | \n\n | \u7b2c\u4e00\u4e2a\u8003\u8bd5\u9898\u76ee\u6216\u6bb5\u843d\u7684\u6587\u672c | \n
| exam2 | \nstring | \n\u662f | \n\n | \u7b2c\u4e8c\u4e2a\u8003\u8bd5\u9898\u76ee\u6216\u6bb5\u843d\u7684\u6587\u672c\uff0c\u7528\u4e8e\u4e0e\u7b2c\u4e00\u4e2a\u8fdb\u884c\u76f8\u4f3c\u5ea6\u6bd4\u8f83 | \n
| \u53c2\u6570\u540d | \n\u53c2\u6570\u7c7b\u578b | \n\u5907\u6ce8 | \n
|---|---|---|
| DataStatus.StatusCode | \nint | \n\u63a5\u53e3\u8fd4\u56de\u72b6\u6001\u7801 | \n
| DataStatus.StatusDescription | \nstring | \n\u63a5\u53e3\u8fd4\u56de\u72b6\u6001\u8bf4\u660e | \n
| DataStatus.ResponseDateTime | \nstring | \n\u63a5\u53e3\u6570\u636e\u8fd4\u56de\u65f6\u95f4 | \n
| Data.score | \nnumber | \n\u4e24\u4e2a\u8003\u8bd5\u9898\u76ee\u6216\u6bb5\u843d\u4e4b\u95f4\u7684\u76f8\u4f3c\u5ea6\u5206\u6570\uff0c\u8303\u56f4\u4e3a 0 - 10 \uff0c\u7cbe\u5ea6\u4e3a\u5c0f\u6570\u70b9\u540e\u4e24\u4f4d\uff0c\u5982 0.85 \uff0c10 \u4e3a\u5b8c\u5168\u76f8\u540c | \n
| Data.analysis_result | \nstring | \n\u76f8\u4f3c\u5ea6\u5206\u6790\u7ed3\u679c\u63cf\u8ff0 | \n
\u5386\u5e74\u9ad8\u6821\u62db\u751f\u8ba1\u5212\u6570\u636e API \u6570\u636e\u63a5\u53e3
\n\u57fa\u7840\u6570\u636e / \u9ad8\u6821\u62db\u751f\uff0c\u5404\u9ad8\u6821\u5386\u5e74\u62db\u751f\u8ba1\u5212\u6570\u636e\uff0c\u9ad8\u6821\u62db\u751f\u6570\u636e / \u5386\u5e74\u8ba1\u5212\u3002
\n
\u63a5\u53e3\u8be6\u60c5: https://www.gugudata.com/api/details/collegeenrollmentplan
\n\u63a5\u53e3\u5730\u5740: https://api.gugudata.com/metadata/college-enrollment-plan
\n\u8fd4\u56de\u683c\u5f0f: application/json; charset=utf-8
\n\u8bf7\u6c42\u65b9\u5f0f: GET
\n\u8bf7\u6c42\u534f\u8bae: HTTPS
\n\u8bf7\u6c42\u793a\u4f8b: https://api.gugudata.com/metadata/college-enrollment-plan?appkey={{YOUR_APPKEY}}&collegemajorname={{}}&year={{}}&pageIndex={{1}}&pageSize={{10}}&schoolname={{}}&provincename={{}}&classOne={{}}&classtwo={{}}&batchname={{}}&type={{}}
\n\u6570\u636e\u9884\u89c8: https://www.gugudata.com/preview/collegeenrollmentplan
\n\u63a5\u53e3\u6d4b\u8bd5: https://api.gugudata.com/metadata/college-enrollment-plan/demo
\n| \u53c2\u6570\u540d | \n\u53c2\u6570\u7c7b\u578b | \n\u662f\u5426\u5fc5\u987b | \n\u9ed8\u8ba4\u503c | \n\u5907\u6ce8 | \n
|---|---|---|---|---|
| appkey | \nstring | \n\u662f | \nYOUR_APPKEY | \n\u4ed8\u8d39\u540e\u83b7\u53d6\u7684 APPKEY | \n
| collegemajorname | \nstring | \n\u5426 | \n\n | \u67e5\u8be2\u7684\u9ad8\u6821\u4e13\u4e1a\u540d\u79f0\uff0c\u652f\u6301\u6a21\u7cca\u67e5\u8be2 | \n
| year | \nint | \n\u5426 | \n\n | \u67e5\u8be2\u7684\u62db\u751f\u5e74\u4efd\uff0c\u5982 2020 \u30012021 \u30012022 \u30012023 \u3002\u53c2\u6570\u9ed8\u8ba4\u503c\u4e3a 0\uff1a\u5373\u83b7\u53d6\u6240\u6709\u5e74\u4efd\u7684\u62db\u751f\u8ba1\u5212\u6570\u636e | \n
| pageindex | \nint | \n\u662f | \n1 | \n\u5206\u9875\u53c2\u6570\uff0c\u7b2c\u51e0\u9875 | \n
| pagesize | \nint | \n\u662f | \n10 | \n\u5206\u9875\u53c2\u6570\uff0c\u6bcf\u9875\u603b\u6761\u6570\uff0c\u53d6\u503c\u8303\u56f4\u5728 10 ~ 100 \u4e4b\u95f4\uff08\u542b\uff09 | \n
| schoolname | \nstring | \n\u5426 | \n\n | \u67e5\u8be2\u7684\u9ad8\u6821\u540d\u79f0\uff0c\u652f\u6301\u6a21\u7cca\u67e5\u8be2 | \n
| provincename | \nstring | \n\u5426 | \n\n | \u67e5\u8be2\u7684\u62db\u751f\u7701\u4efd | \n
| classone | \nstring | \n\u5426 | \n\n | \u67e5\u8be2\u7684\u4e13\u4e1a\u5927\u7c7b | \n
| classtwo | \nstring | \n\u5426 | \n\n | \u67e5\u8be2\u7684\u4e13\u4e1a\u5c0f\u7c7b | \n
| batchname | \nstring | \n\u5426 | \n\n | \u5f55\u53d6\u6279\u6b21\u53c2\u6570\uff0c\u53ef\u9009\u679a\u4e3e\u503c\u8bf7\u53c2\u8003 Data.AdmissionBatch \u8fd4\u56de\u503c\u679a\u4e3e | \n
| type | \nstring | \n\u5426 | \n\n | \u4f20\u9012\u7684\u53c2\u6570\u503c\u53ef\u9009\u4e3a\uff1a\u7406\u79d1|\u6587\u79d1|\u7efc\u5408|\u827a\u672f\u7c7b|\u4f53\u80b2\u7c7b|\u4f53\u80b2\u7406|\u8499\u6388\u7406\u79d1|\u827a\u672f\u6587|\u4f53\u80b2\u6587|\u6c49\u6388\u7f8e\u672f|\u8499\u6388\u6587\u79d1|\u5b66\u8003\u6587|\u5b66\u8003\u7406|\u827a\u672f\u7406|\u6c49\u6388\u97f3\u4e50|\u6c49\u6388\u4f53\u80b2|\u5176\u4ed6\u827a\u672f|\u6c49\u6388\u7f16\u5bfc|\u8499\u6388\u97f3\u4e50|\u8499\u6388\u4f53\u80b2|\u8499\u6388\u7f8e\u672f|\u65c5\u6e38\u7c7b|\u8ba1\u7b97\u673a\u7c7b|3+\u8bc1\u4e66|\u8499\u6388\u5176\u4ed6\u827a\u672f|\u519c\u5b66\u7c7b|\u8d22\u4f1a\u7c7b|\u7267\u533b\u7c7b|\u8499\u7267\u533b\u7c7b|\u7f8e\u5de5\u8bbe\u8ba1\u7c7b|\u6c7d\u9a7e\u7c7b|\u5e7c\u5e08\u7c7b|\u5efa\u7b51\u7c7b|\u70f9\u996a\u7c7b | \n
| \u53c2\u6570\u540d | \n\u53c2\u6570\u7c7b\u578b | \n\u5907\u6ce8 | \n
|---|---|---|
| DataStatus.StatusCode | \nint | \n\u63a5\u53e3\u8fd4\u56de\u72b6\u6001\u7801 | \n
| DataStatus.StatusDescription | \nstring | \n\u63a5\u53e3\u8fd4\u56de\u72b6\u6001\u8bf4\u660e | \n
| DataStatus.ResponseDateTime | \nstring | \n\u63a5\u53e3\u6570\u636e\u8fd4\u56de\u65f6\u95f4 | \n
| DataStatus.DataTotalCount | \nint | \n\u6b64\u6761\u4ef6\u4e0b\u7684\u603b\u6570\u636e\u91cf\uff0c\u4e00\u822c\u7528\u4e8e\u5206\u9875\u8ba1\u7b97 | \n
| Data.InSchoolYears | \nstring | \n\u5b66\u5236\u5e74\u9650 | \n
| Data.ClassOne | \nstring | \n\u4e13\u4e1a\u5927\u7c7b | \n
| Data.ClassTwo | \nstring | \n\u4e13\u4e1a\u5c0f\u7c7b | \n
| Data.BatchName | \nstring | \n\u5f55\u53d6\u6279\u6b21 | \n
| Data.Type | \nstring | \n\u6587\u7406\u7efc\u5408\u7c7b\u522b | \n
| Data.SchoolName | \nstring | \n\u9ad8\u6821\u540d\u79f0 | \n
| Data.EnrollmentNumbers | \nint | \n\u62db\u751f\u4eba\u6570 | \n
| Data.SchoolUUID | \nstring | \n\u5495\u5495\u6570\u636e\u5e73\u53f0\u9ad8\u6821\u552f\u4e00 ID | \n
| Data.CourseSelectionRequirements | \nstring | \n\u9009\u79d1\u8981\u6c42 | \n
| Data.CollegeMajorName | \nstring | \n\u9ad8\u6821\u4e13\u4e1a\u540d\u79f0 | \n
| Data.Year | \nint | \n\u62db\u751f\u5e74\u4efd | \n
| Data.ProvinceName | \nstring | \n\u62db\u751f\u7701\u4efd | \n
\u4f8b\u5982\uff1a\napp \u542f\u52a8\u7684\u65f6\u5019\uff0c\u5148\u7528 app \u6307\u7eb9\u548c app \u7684\u516c\u7f51 ip \u62ff\u5230 jwt \u518d\u53bb\u8bf7\u6c42\u767b\u9646/\u6ce8\u518c\u63a5\u53e3\u3002
\n\u4f46\u662f \u8fd9\u65f6\u5206\u53d1 jwt \u7684\u63a5\u53e3\u3002\u600e\u4e48\u907f\u514d\u4e00\u76f4\u88ab\u641e\uff1f
\n\u60f3\u628a\u5f02\u5e38\u8bf7\u6c42\u76f4\u63a5\u62e6\u622a\u5230\u5916\u9762\uff0c\u5c3d\u91cf\u4e0d\u8ba9\u5f02\u5e38\u8bf7\u6c42\u843d\u5730\u5230\u670d\u52a1\u5668\u4e0a\u3002
\n\u76ee\u524d\u662f\u5957\u4e86\u817e\u8baf\u4e91\u7684 cdn \u5f53\u53cd\u4ee3\u7528,\u4e0d\u7f13\u5b58\u6bcf\u6b21\u90fd\u56de\u6e90\u3002cdn \u4e0a\u9650\u5236\u7684\u5355 ip qps \uff08\u963f\u91cc\u4e91\u90a3\u8fb9\u597d\u50cf\u53ea\u80fd\u7528 WAF \u6709\u70b9\u590d\u6742..\uff09\uff0c\u8fd8\u6709\u522b\u7684\u529e\u6cd5\u4e0d\uff1f
\n\u5df2\u767b\u9646\u7528\u6237 \u7684\u63a5\u53e3\u8d70\u4e86\u963f\u91cc\u4e91\u7684\u51fd\u6570\u8ba1\u7b97\uff0c\u7528\u7684\u51fd\u6570\u8ba1\u7b97\u7684 jwt \u8ba4\u8bc1\u3002\n\u5f02\u5e38\u8bf7\u6c42\uff0c\u76f4\u63a5\u5728 redis \u5efa\u4e86\u4e00\u4e2a\u9ed1\u540d\u5355\uff0c\u518d\u901a\u77e5 jwt \u5206\u53d1\u63a5\u53e3\u7981\u6b62\u65b0\u53d1\uff0c\u7b49 jwt \u5931\u6548\u5c31\u5676\u6389\u3002
\n", "date_published": "2023-12-01T01:50:16+00:00", "title": "\u8bf7\u6559\uff0c\u672a\u767b\u9646\u7528\u6237\u7684 api \u600e\u4e48\u9632\u62a4\u6bd4\u8f83\u5408\u9002\uff1f", "id": "t/996719" }, { "author": { "url": "member/pipixiarwksb", "name": "pipixiarwksb", "avatar": "https://cdn.v2ex.com/gravatar/a86780a5f897d231b3f66dbae99483e4?s=73&d=retro" }, "url": "t/994528", "date_modified": "2023-11-24T00:17:56+00:00", "content_html": "\u6216\u8005\u4ed8\u8d39\u7684\u4e5f\u53ef\u4ee5\n\u8981\u6c42:\u8981\u6c42\u8d28\u91cf\u9ad8\uff0c\u54cd\u5e94\u5feb\uff0c\u5e76\u53d1\u9ad8\n\u8c22\u8c22\u5404\u4f4d\u8001\u54e5
\n", "date_published": "2023-11-23T06:58:52+00:00", "title": "\u6709\u6ca1\u6709\u514d\u8d39\u7ffb\u8bd1\u7684 api\uff0c\u8f93\u5165\u6587\u672c\u76f4\u63a5\u7ffb\u8bd1\u6210\u4e2d\u6587", "id": "t/994528" }, { "author": { "url": "member/braveMan", "name": "braveMan", "avatar": "https://cdn.v2ex.com/gravatar/3c6a092079e2711e06276e734910b492?s=73&d=retro" }, "url": "t/992416", "date_modified": "2023-11-17T00:04:25+00:00", "content_html": "\u4e3b\u8981\u662f\u60f3\u83b7\u53d6\u5355\u8bcd\u7684\u97f3\u6807\u6700\u8fd1\u770b\u5230\u9192\u56fe/\u7f8e\u56fe\u79c0\u79c0\u7684\u62fc\u56fe\u529f\u80fd\uff0c\u628a\u4e0a\u4f20\u7684 n \u4e2a\u7167\u7247\uff0c\u585e\u5230\u4e00\u4e2a\u6a21\u677f\u4e2d\uff0c\u751f\u6210\u4e00\u4e2a\u50cf\u6d77\u62a5\u4e00\u6837\u7684\u56fe\u7247\u3002\u8fd9\u79cd\u5927\u5bb6\u6709\u4e86\u89e3\u6210\u719f\u7684 api \u6216\u8005\u5e94\u7528\u5417\uff1f
\n", "date_published": "2023-11-07T01:44:32+00:00", "title": "\u6709\u6ca1\u6709\u9192\u56fe\u6216\u8005\u7f8e\u56fe\u79c0\u79c0\u62fc\u56fe\u529f\u80fd\u7c7b\u4f3c\u7684 API", "id": "t/989360" }, { "author": { "url": "member/yiwangersanli", "name": "yiwangersanli", "avatar": "https://cdn.v2ex.com/gravatar/46bb3b6fbb2a04b5fb7b9c402e248cd8?s=73&d=retro" }, "url": "t/988950", "date_modified": "2023-11-06T11:23:40+00:00", "content_html": "\u6709\u6ca1\u6709\u505a\u8fc7\u82f1\u8bed\u5b66\u4e60\u7c7b\u4ea7\u54c1\u7684\u5927\u795e\uff1f\u6211\u60f3\u505a\u4e00\u4e2a\u7ffb\u8bd1\u68c0\u67e5\u548c\u6253\u5206\u7684\u529f\u80fd\uff0c\u62ff\u5230\u7528\u6237\u57fa\u4e8e\u82f1\u6587\u7684\u6c49\u8bed\u7ffb\u8bd1\u4e4b\u540e\u7ed9\u7528\u6237\u6253\u4e2a\u5206\u3002\u76ee\u524d\u6709\u76f8\u5173\u7684 api \u53ef\u4ee5\u5b9e\u73b0\u8fd9\u4e2a\u529f\u80fd\u5417\uff1f
\n", "date_published": "2023-11-06T01:55:07+00:00", "title": "\u6709\u6ca1\u6709 api \u53ef\u4ee5\u7ed9\u7528\u6237\u7684\u82f1\u8bd1\u6c49\u7ed3\u679c\u6253\u5206\uff1f", "id": "t/988950" }, { "author": { "url": "member/sinecw", "name": "sinecw", "avatar": "https://cdn.v2ex.com/avatar/c3ce/7e59/480927_large.png?m=1589078930" }, "url": "t/988212", "date_modified": "2023-11-07T11:13:41+00:00", "content_html": "\u60f3\u642d\u5efa\u4e00\u4e2a\u9ad8\u53ef\u7528\u7684 chatgpt \u670d\u52a1\uff0c\u76ee\u524d\u6709\u4e09\u53f0\u670d\u52a1\u5668\uff0c\u5982\u4f55\u8bbe\u8ba1\u5206\u6d41\u548c\u590d\u6742\u5747\u8861\u5462\uff1f\u6c42\u5927\u795e\u70b9\u9192
\n", "date_published": "2023-11-03T03:56:53+00:00", "title": "\u8bbe\u8ba1\u9ad8\u53ef\u7528\u7684 api \u670d\u52a1", "id": "t/988212" }, { "author": { "url": "member/WOSHILIDAYE", "name": "WOSHILIDAYE", "avatar": "https://cdn.v2ex.com/avatar/7886/682b/594540_large.png?m=1698636162" }, "url": "t/986636", "date_modified": "2023-10-30T11:00:07+00:00", "content_html": "\u5c31\u7528\u4e8e\u5546\u57ce\u7684\u9a8c\u8bc1\u7801\u77ed\u4fe1\u548c\u8ba2\u5355\u901a\u77e5\uff0c\u5c31\u662f\u4e0d\u60f3\u5b9e\u540d\uff0c\u4ef7\u683c\u4e0d\u662f\u5f88\u6311\u5254\uff0c\u611f\u8c22", "date_published": "2023-10-30T03:24:25+00:00", "title": "\u6c42\u63a8\u8350\u4e00\u4e2a\u77ed\u4fe1 api \u5e73\u53f0", "id": "t/986636" }, { "author": { "url": "member/luchenwei9266", "name": "luchenwei9266", "avatar": "https://cdn.v2ex.com/avatar/9be2/6e84/371352_large.png?m=1740622971" }, "url": "t/986181", "title": "\u5404\u4f4d\u5927\u4f6c\u4eec\uff0c\u6709\u8c01\u77e5\u9053\u54ea\u4e2a\u7f51\u7ad9\u53ef\u4ee5\u67e5\u822a\u73ed\u548c\u706b\u8f66\u7684 API\uff1f", "id": "t/986181", "date_published": "2023-10-28T00:29:04+00:00", "content_html": "\u627e\u4e86\u4e00\u5708\u6ca1\u627e\u5230\u9002\u5408\u4e2a\u4eba\u5f00\u53d1\u8005\u7684\u3002\u3002
\n\u5404\u4f4d\u5927\u4f6c\u4eec\uff0c\u8981\u662f\u6709\u77e5\u9053\u63d0\u4f9b API \u7f51\u7ad9\u7684\u9ebb\u70e6\u544a\u77e5\u4e00\u4e0b\u5c0f\u5f1f\uff0c\u4ed8\u8d39\u548c\u514d\u8d39\u7684\u90fd\u884c\uff0c\u8c22\u8c22\u5927\u4f6c\u4eec\u4e86\u3002\u3002\u3002
\n" }, { "author": { "url": "member/xu98", "name": "xu98", "avatar": "https://cdn.v2ex.com/gravatar/060a5ce014f47962c58842691a1a1543?s=73&d=retro" }, "url": "t/986080", "date_modified": "2023-10-28T00:41:33+00:00", "content_html": "\u7528\u8fc7\u76f8\u5173\u7684\uff0c\u89c9\u5f97\u597d\u7528\u7684\uff0c \u4ef7\u683c\u6bd4\u8f83\u5b9e\u60e0\u7684\uff0c\u611f\u8c22~", "date_published": "2023-10-27T09:02:48+00:00", "title": "\u6c42\u52a9\u4e00\u4e0b\u54ea\u91cc\u6709\u8239\u8236\u4fe1\u606f\u7684 API", "id": "t/986080" }, { "author": { "url": "member/Xxxzy", "name": "Xxxzy", "avatar": "https://cdn.v2ex.com/gravatar/f098d9290167f36ba08bf7d33054f248?s=73&d=retro" }, "url": "t/965930", "title": "\u60f3\u4e86\u89e3 \u5982\u4f55\u63a5\u5165\u4e00\u4e2a\u5e94\u7528 \u5f53\u8fd9\u4e2a\u5e94\u7528\u53d1\u51fa\u901a\u77e5\u65f6 \u53ef\u4ee5\u81ea\u52a8\u5316\u64cd\u4f5c\u63d0\u524d\u8bbe\u7f6e\u597d\u7684\u6307\u4ee4 \u7c7b\u4f3c\u8df3\u8f6c\u7136\u540e\u4e0b\u5355\u6216\u8005\u7c7b\u4f3c\u5927\u9ea6\u62a2\u7968\u811a\u672c", "id": "t/965930", "date_published": "2023-08-16T16:09:30+00:00", "content_html": "" }, { "author": { "url": "member/Xxxzy", "name": "Xxxzy", "avatar": "https://cdn.v2ex.com/gravatar/f098d9290167f36ba08bf7d33054f248?s=73&d=retro" }, "url": "t/965265", "title": "\u5708\u5916\u4eba \u60f3\u4e86\u89e3\u80fd\u5426\u505a\u4e00\u4e2a\u5916\u63a5\u7a0b\u5e8f \u81ea\u52a8\u5bf9\u67d0 app \u5e94\u7528\u8fdb\u884c\u81ea\u52a8\u5316\u53cd\u5e94\u64cd\u4f5c", "id": "t/965265", "date_published": "2023-08-14T13:23:00+00:00", "content_html": "" }, { "author": { "url": "member/pengdirect", "name": "pengdirect", "avatar": "https://cdn.v2ex.com/avatar/0a91/74c1/448588_large.png?m=1685856247" }, "url": "t/955171", "title": "DeepL API \u600e\u4e48\u7528\uff1f", "id": "t/955171", "date_published": "2023-07-08T14:05:19+00:00", "content_html": "\u6700\u8fd1\u7528\u865a\u62df\u4fe1\u7528\u5361\u7533\u8bf7\u4e00\u4e2a DeeL \u7684 API \uff0c\u4f46\u662f\u4e0d\u77e5\u9053\u600e\u4e48\u4f7f\u7528\uff1f\u60f3\u5728\u684c\u9762\u7aef\u8fdb\u884c\u7ffb\u8bd1\uff0c\u8bf7\u95ee\u600e\u4e48\u4f7f\u7528\u554a\uff1f
\n" }, { "author": { "url": "member/Parry", "name": "Parry", "avatar": "https://cdn.v2ex.com/avatar/1474/7ce6/35923_large.png?m=1767146301" }, "url": "t/947126", "title": "\u5168\u56fd\u5927\u5b66\u9ad8\u6821\u4e13\u4e1a\u6570\u636e API \u63a5\u53e3", "id": "t/947126", "date_published": "2023-06-08T15:00:47+00:00", "content_html": "\u6b22\u8fce\u4f7f\u7528\u5168\u56fd\u5927\u5b66\u9ad8\u6821\u4e13\u4e1a\u6570\u636e API \u63a5\u53e3\uff01\u6211\u4eec\u4e3a\u60a8\u63d0\u4f9b\u5168\u9762\u7684\u5927\u5b66\u4e13\u4e1a\u57fa\u7840\u6570\u636e\uff0c\u6301\u7eed\u66f4\u65b0\uff0c\u8986\u76d6\u5404\u7c7b\u4e13\u4e1a\u5c5e\u6027\u3002\u65e0\u8bba\u60a8\u662f\u6559\u80b2\u673a\u6784\u3001\u5b66\u672f\u7814\u7a76\u8005\u8fd8\u662f\u5f00\u53d1\u8005\uff0c\u6211\u4eec\u7684 API \u63a5\u53e3\u90fd\u80fd\u6ee1\u8db3\u60a8\u7684\u9700\u6c42\u3002
\n
https://www.gugudata.com/api/details/ceemajor
\nhttps://api.gugudata.com/metadata/ceemajor
\napplication/json; charset=utf-8
GET
HTTPS
https://www.gugudata.com/preview/ceemajor
\n\u4ee5\u4e0b\u662f\u63a5\u53e3\u7684\u8bf7\u6c42\u53c2\u6570\u53ca\u5176\u8bf4\u660e\uff1a
\n| \u53c2\u6570\u540d | \n\u53c2\u6570\u7c7b\u578b | \n\u662f\u5426\u5fc5\u987b | \n\u9ed8\u8ba4\u503c | \n\u5907\u6ce8 | \n
|---|---|---|---|---|
| appkey | \nstring | \n\u662f | \nYOUR_APPKEY | \n\u4ed8\u8d39\u540e\u83b7\u53d6\u7684 APPKEY | \n
| keywords | \nstring | \n\u5426 | \nYOUR_VALUE | \n\u641c\u7d22\u5173\u952e\u5b57\uff0c\u53ef\u4ee5\u6a21\u7cca\u5339\u914d\u4e13\u4e1a\u540d\u79f0\u3001\u5b66\u79d1\u3001\u4e13\u4e1a\u4ecb\u7ecd\u3001\u5f00\u8bbe\u8bfe\u7a0b\u3002\u53c2\u6570\u503c\u4e3a\u7a7a\u5219\u8fd4\u56de\u6240\u6709\u6570\u636e\u5206\u9875 | \n
| pagesize | \nint | \n\u5426 | \n10 | \n\u6bcf\u9875\u6570\u636e\u91cf\uff0c\u6700\u5927\u503c\u4e3a 20 | \n
| pageindex | \nint | \n\u5426 | \n1 | \n\u9875\u7801\uff0c\u4ece 1 \u5f00\u59cb\u8ba1\u6570 | \n
\u4ee5\u4e0b\u662f\u63a5\u53e3\u7684\u8fd4\u56de\u53c2\u6570\u53ca\u5176\u8bf4\u660e\uff1a
\n| \u53c2\u6570\u540d | \n\u53c2\u6570\u7c7b\u578b | \n\u5907\u6ce8 | \n
|---|---|---|
| DataStatus.StatusCode | \nint | \n\u63a5\u53e3\u8fd4\u56de\u72b6\u6001\u7801 | \n
| DataStatus.StatusDescription | \nstring | \n\u63a5\u53e3\u8fd4\u56de\u72b6\u6001\u8bf4\u660e | \n
| DataStatus.ResponseDateTime | \nstring | \n\u63a5\u53e3\u6570\u636e\u8fd4\u56de\u65f6\u95f4 | \n
| DataStatus.DataTotalCount | \nint | \n\u6b64\u6761\u4ef6\u4e0b\u7684\u603b\u6570\u636e\u91cf\uff0c\u4e00\u822c\u7528\u4e8e\u5206\u9875\u8ba1\u7b97 | \n
| Data.EducationLevel | \nstring | \n\u5b66\u5386\u5c42\u6b21 | \n
| Data.DisciplinaryCategory | \nstring | \n\u5b66\u79d1\u95e8\u7c7b | \n
| Data.DisciplinarySubCategory | \nstring | \n\u5b66\u79d1\u4e13\u4e1a\u7c7b | \n
| Data.MajorCode | \nstring | \n\u4e13\u4e1a\u4ee3\u7801 | \n
| Data.MajorName | \nstring | \n\u4e13\u4e1a\u540d\u79f0 | \n
| Data.MajorIntroduction | \nstring | \n\u4e13\u4e1a\u4ecb\u7ecd | \n
| Data.Courses.CourseName | \nstring | \n\u5f00\u8bbe\u8bfe\u7a0b\u540d\u79f0 | \n
| Data.Courses.CourseDifficulty | \nstring | \n\u5f00\u8bbe\u8bfe\u7a0b\u96be\u5ea6 | \n
| Data.GraduateScale | \nstring | \n\u5168\u56fd\u666e\u901a\u9ad8\u6821\u6bd5\u4e1a\u751f\u89c4\u6a21\uff08\u6982\u7565\u6570\u636e\uff09 | \n
| Data.MaleFemaleRatio | \nstring | \n\u7537\u5973\u6bd4\u4f8b\uff08\u6982\u7565\u6570\u636e\uff09 | \n
| Data.RecommendSchools | \nstring[] | \n\u63a8\u8350\u9662\u6821\u5217\u8868 | \n
\u6211\u60f3\u95ee\u4e0b\u6587\u672c\u7ffb\u8bd1 API \u9650\u9891\u6539\u4e86\u4e48\uff1f\u6211\u5728\u51e0\u79d2\u5185\u8c03\u7528\u4e03\u516b\u6b21\u5c31\u8fd4\u56de\u9519\u8bef\u4e86\uff1f\n\u53f6\u5b50 \u2728 \u2728 \u2728 09:58:27\n\u5b9e\u540d\u8ba4\u8bc1\n\u545c\u55b5 09:58:44\n\u597d\u5427\uff0c\u90fd\u6ca1\u63d0\u9192\u8bf4\u6ca1\u5b9e\u540d\u9650\u9891\n\u53f6\u5b50 \u2728 \u2728 \u2728 10:01:46\n\u4f60\u4e00\u6ce8\u518c\u65f6\u5019\u4e0d\u5c31\u6709\u5b9e\u540d\u8ba4\u8bc1\u7684\u63d0\u793a\u561b\uff1f\n\u545c\u55b5 10:02:00\n\u6ca1\uff0c\u53ef\u80fd\u6211\u6ce8\u518c\u7684\u6bd4\u8f83\u65e9\n\u53f6\u5b50 \u2728 \u2728 \u2728 10:02:27\n\u54e6 \u90a3\u5c31\u8ba4\u8bc1\u4e0b\u5427 \u4f60\u73b0\u5728\u767b\u5f55\u63a7\u5236\u53f0\u80af\u5b9a\u4f1a\u6709\u63d0\u793a\u7684\n\u545c\u55b5 10:02:30\n\u8fd8\u662f\u9650\u5236\u4e86\n\u53f6\u5b50 \u2728 \u2728 \u2728 10:02:55\n\u8ba4\u8bc1\u5b8c\u6210\u4e4b\u540e \u8fd8\u9700\u8981\u9664\u4f53\u9a8c\u91d1\u4e4b\u5916\u6709\u4f59\u989d\u7684\u54c8\n\u545c\u55b5 10:03:05\n[\u8868\u60c5]\n\u545c\u55b5 10:03:15\n\u8981\u591a\u5c11\u4f59\u989d\n\u545c\u55b5 10:04:21\n\u4f59\u989d\u5145\u503c\u6709\u8981\u6c42\u4e48\uff1f\u6211\u770b\u4e00\u5206\u94b1\u8d77\u5145\uff1f\n\u53f6\u5b50 \u2728 \u2728 \u2728 10:06:09\n\u4f60\u8981\u8ba9\u6211\u8bf4\u7684\u8bdd \u90a3\u80af\u5b9a\u662f\u591a\u591a\u76ca\u5584\u554a \u54c8\u54c8\u54c8\n\u53f6\u5b50 \u2728 \u2728 \u2728 10:06:28\n\u6839\u636e\u4f60\u7684\u9700\u6c42\u554a \u4f60\u9700\u8981\u91cf\u6bd4\u8f83\u5927 \u53ef\u4ee5\u591a\u5145\u503c\u70b9 \u91cf\u5c11\u53ef\u4ee5\u5c11\u5145\u503c\u4e00\u4e9b\n\u545c\u55b5 10:06:51\n\u95ee\u9898\u662f\uff0c\u6211\u5145\u503c\u4e86\u4e00\u5206\u94b1\u4f9d\u7136\u6ca1\u89e3\u51b3\uff0c\u662f\u4e0d\u662f\u6709\u5145\u503c\u4f59\u989d\u8981\u6c42\uff1f\u80fd\u5e2e\u6211\u95ee\u4e0b\u4e48\uff1f\n\u545c\u55b5 10:07:06\n\" \u53f6\u5b50 \u2728 \u2728 \u2728 10:06:28\n\u6839\u636e\u4f60\u7684\u9700\u6c42\u554a \u4f60\u9700\u8981\u91cf\u6bd4\u8f83\u5927 \u53ef\u4ee5\u591a\u5145\u503c\u70b9 \u91cf\u5c11\u53ef\u4ee5\u5c11\u5145\u503c\u4e00\u4e9b \"\n@\u53f6\u5b50 \u2728 \u2728 \u2728 \u6211\u5b9e\u9645\u8fde\u4f53\u9a8c\u91d1\u90fd\u7528\u4e0d\u5b8c\n\u545c\u55b5 10:07:22\n\u4f46\u662f\u73b0\u5728\u8c03\u7528 api \u9891\u7387\u5b9e\u5728\u662f\u592a\u4f4e\u4e86\n\u53f6\u5b50 \u2728 \u2728 \u2728 10:12:25\n\u4f60\u51b2\u4e86\u4e00\u5206\u94b1\u6ca1\u89e3\u51b3\u4f60\u8fd8\u53ef\u4ee5\u8bd5\u8bd5\u591a\u5145\u503c\u70b9\u554a\n\u53f6\u5b50 \u2728 \u2728 \u2728 10:12:29\n\u8ba9\u6211\u95ee\u5565\n\u545c\u55b5 10:12:51\n\u2026..\u4f60\u8fd9\u8bdd\u6709\u70b9\u50cf\u65e0\u826f\u5978\u5546\u6709\u6ca1\u6709\n\u53f6\u5b50 \u2728 \u2728 \u2728 10:13:09\n\u5475\u5475 \u90a3\u5c31\u662f\u5427\n\n\u524d\u4e24\u5929\u8fd8\u548c\u670b\u53cb\u8bf4\u6709\u9053 API \u771f\u826f\u5fc3\uff0c\u9001\u7684\u94b1\u90fd\u7528\u4e0d\u5b8c\u3002\u5b9e\u9645\u4e0a\u6211\u76ee\u524d\u662f Alfred \u81ea\u7528\u3002\u6211\u4e0d\u4ecb\u610f\u5145\u503c 100 \uff0c\u867d\u7136\u53ef\u80fd\u8fd9\u8f88\u5b50\u90fd\u7528\u4e0d\u5b8c\u3002\u4f46\u662f\u6587\u6863\u6ca1\u8bf4\u660e\uff0c\u5ba2\u670d\u4e00\u526f\u62fd\u6b7b\u7684\u6001\u5ea6\uff0c\u6211\u662f\u89c9\u5f97\u7565\u5fae\u61f5\u903c\u3002
\n\u6709\u89e3\u51b3\u8fc7\u8fd9\u4e2a\u95ee\u9898\u7684\u8001\u54e5\u4e48\uff1f\u544a\u8bc9\u6211\u5f97\u51b2\u591a\u5c11\uff1f
\n" }, { "author": { "url": "member/Authing", "name": "Authing", "avatar": "https://cdn.v2ex.com/avatar/b759/896b/570457_large.png?m=1683190646" }, "url": "t/926916", "title": "\u63d2\u4ef6\u5f00\u53d1\u7248\uff5c Authing \u7ed3\u5408 APISIX \u5b9e\u73b0\u7edf\u4e00\u53ef\u914d\u7f6e API \u6743\u9650\u7f51\u5173", "id": "t/926916", "date_published": "2023-03-24T09:22:46+00:00", "content_html": "\u5f53\u5f00\u53d1\u8005\u5728\u6784\u5efa\u7f51\u7ad9\u3001\u79fb\u52a8\u8bbe\u5907\u6216\u7269\u8054\u7f51\u5e94\u7528\u7a0b\u5e8f\u65f6\uff0cAPI \u7f51\u5173\u4f5c\u4e3a\u5fae\u670d\u52a1\u67b6\u6784\u4e2d\u4e0d\u53ef\u6216\u7f3a\u7684\u63a7\u5236\u7ec4\u4ef6\uff0c\u662f\u6d41\u91cf\u7684\u6838\u5fc3\u8fdb\u51fa\u53e3\u3002\u901a\u8fc7\u6709\u6548\u7684\u6743\u9650\u7ba1\u63a7\uff0c\u53ef\u4ee5\u5b9e\u73b0\u8ba4\u8bc1\u6388\u6743\u3001\u76d1\u63a7\u5206\u6790\u7b49\u529f\u80fd\uff0c\u63d0\u9ad8\u00a0API \u7684\u5b89\u5168\u6027\u3001\u53ef\u7528\u6027\u3001\u62d3\u5c55\u6027\u4ee5\u53ca\u4f18\u5316 API \u6027\u80fd\u3002\u4e4b\u524d\u6211\u4eec\u6f14\u793a\u4e86\u901a\u8fc7 Authing \u6743\u9650\u7ba1\u7406 + APISIX \u5b9e\u73b0 API \u7684\u8bbf\u95ee\u63a7\u5236\u6548\u679c\uff0c\u672c\u6587\u5c06\u6559\u4f60\u5982\u4f55\u5b9e\u73b0\u4e0a\u8ff0\u80fd\u529b\u7684\u5177\u4f53\u5b9e\u8df5\u65b9\u6cd5\u3002
\nAuthing \u662f\u56fd\u5185\u9996\u6b3e\u4ee5\u5f00\u53d1\u8005\u4e3a\u4e2d\u5fc3\u7684\u5168\u573a\u666f\u8eab\u4efd\u4e91\u4ea7\u54c1\uff0c\u96c6\u6210\u4e86\u6240\u6709\u4e3b\u6d41\u8eab\u4efd\u8ba4\u8bc1\u534f\u8bae\uff0c\u4e3a\u4f01\u4e1a\u548c\u5f00\u53d1\u8005\u63d0\u4f9b\u5b8c\u5584\u5b89\u5168\u7684\u7528\u6237\u8ba4\u8bc1\u548c\u8bbf\u95ee\u7ba1\u7406\u670d\u52a1\u3002\u4ee5\u300c API First \u300d\u4f5c\u4e3a\u4ea7\u54c1\u57fa\u77f3\uff0c\u628a\u8eab\u4efd\u9886\u57df\u6240\u6709\u5e38\u7528\u529f\u80fd\u90fd\u8fdb\u884c\u4e86\u6a21\u5757\u5316\u7684\u5c01\u88c5\uff0c\u901a\u8fc7\u5168\u573a\u666f\u7f16\u7a0b\u8bed\u8a00 SDK \u5c06\u6240\u6709\u80fd\u529b API \u5316\u63d0\u4f9b\u7ed9\u5f00\u53d1\u8005\u3002\u540c\u65f6\uff0c\u7528\u6237\u53ef\u4ee5\u7075\u6d3b\u7684\u4f7f\u7528 Authing \u5f00\u653e\u7684 RESTful APIs \u8fdb\u884c\u529f\u80fd\u62d3\u5c55\uff0c\u6ee1\u8db3\u4e0d\u540c\u4f01\u4e1a\u4e0d\u540c\u4e1a\u52a1\u573a\u666f\u4e0b\u7684\u8eab\u4efd\u548c\u6743\u9650\u7ba1\u7406\u9700\u6c42\u3002
\nApache APISIX \u662f\u4e00\u4e2a\u52a8\u6001\u3001\u5b9e\u65f6\u3001\u9ad8\u6027\u80fd\u7684 API \u7f51\u5173\uff0c\u63d0\u4f9b\u8d1f\u8f7d\u5747\u8861\u3001\u52a8\u6001\u4e0a\u6e38\u3001\u7070\u5ea6\u53d1\u5e03\u3001\u670d\u52a1\u7194\u65ad\u3001\u8eab\u4efd\u8ba4\u8bc1\u3001\u53ef\u89c2\u6d4b\u6027\u7b49\u4e30\u5bcc\u7684\u6d41\u91cf\u7ba1\u7406\u529f\u80fd\u3002Apache APISIX \u4e0d\u4ec5\u652f\u6301\u63d2\u4ef6\u52a8\u6001\u53d8\u66f4\u548c\u70ed\u63d2\u62d4\uff0c\u800c\u4e14\u62e5\u6709\u4f17\u591a\u5b9e\u7528\u7684\u63d2\u4ef6\u3002Apache APISIX \u7684 OpenID Connect \u63d2\u4ef6\u652f\u6301 OpenID Connect \u534f\u8bae\uff0c\u7528\u6237\u53ef\u4ee5\u4f7f\u7528\u8be5\u63d2\u4ef6\u8ba9 Apache APISIX \u5bf9\u63a5 Authing \u670d\u52a1\uff0c\u4f5c\u4e3a\u96c6\u4e2d\u5f0f\u8ba4\u8bc1\u7f51\u5173\u90e8\u7f72\u4e8e\u4f01\u4e1a\u4e2d\u3002
\n\u901a\u8fc7 Authing \u6743\u9650\u7ba1\u7406 + APISIX \u5b9e\u73b0 API \u7684\u8bbf\u95ee\u63a7\u5236
\n\u672c\u6587\u6240\u6d89\u53ca\u5230\u7684\u4ee3\u7801\u5df2\u7ecf\u4e0a\u4f20\u5230 Github
\nPython \u63d2\u4ef6\uff1a\nhttps://github.com/fehu-asia/authing-apisix-python-agent
\nJava Adapter:\nhttps://github.com/fehu-asia/authing-apisix-java-adapter
\nJava \u63d2\u4ef6\uff1a\nhttps://github.com/fehu-asia/authing-apisix-java-agent
\n
\u7cfb\u7edf\u6574\u4f53\u5305\u542b\u4e86\u4e09\u5927\u90e8\u5206\uff1aAuthing \u670d\u52a1\u96c6\u7fa4\u3001Authing \u63d2\u4ef6\u9002\u914d\u670d\u52a1\u4ee5\u53ca APISIX \u7f51\u5173\uff0c\u672c\u65b9\u6848\u5efa\u7acb\u9700\u8981\u914d\u7f6e\u548c\u5f00\u53d1\u7684\u90e8\u5206\u6709\u56db\u4e2a\u90e8\u5206\uff0cAuthing API \u6743\u9650\u7ed3\u6784\u914d\u7f6e\u3001APISIX \u63d2\u4ef6\u548c\u8def\u7531\u914d\u7f6e\u3001APISIX \u63d2\u4ef6\u5f00\u53d1\u90e8\u7f72\u4ee5\u53ca\u4e1a\u52a1\u9002\u914d\u670d\u52a1\u5f00\u53d1\uff0c\u5176\u4e2d\u4e1a\u52a1\u9002\u914d\u670d\u52a1\u5305\u542b\u4e86\u8ba4\u8bc1\u548c\u6388\u6743\u7684\u4e3b\u8981\u903b\u8f91(\u4f7f\u7528\u5355\u72ec\u670d\u52a1\u627f\u8f7d)\uff0c\u907f\u514d\u4e86\u63d2\u4ef6\u7684\u9891\u7e41\u66f4\u65b0\u548c\u90e8\u7f72\u3002
\n\u8fd9\u91cc\u9700\u8981\u8bf4\u660e\u7684\u662f\uff0c\u4e4b\u6240\u4ee5\u91c7\u7528 Adapter \u7684\u65b9\u5f0f\u6765\u5b9e\u73b0\uff0c\u662f\u56e0\u4e3a\u63d2\u4ef6\u6211\u4eec\u5e76\u4e0d\u5e0c\u671b\u7ecf\u5e38\u53d8\u52a8\uff0c\u4f46\u9700\u6c42\u53ef\u80fd\u662f\u65e0\u6cd5\u907f\u514d\u7684\u9700\u8981\u7ecf\u5e38\u53d8\u52a8\uff0c\u6240\u4ee5\u6211\u4eec\u5c06\u5177\u4f53\u7684\u9274\u6743\u903b\u8f91\u653e\u5728 Adapter \uff0c\u63d2\u4ef6\u53ea\u5b9e\u73b0\u8bf7\u6c42\u8f6c\u53d1\u548c\u6839\u636e Adapter \u7684\u8fd4\u56de\u7ed3\u679c\u51b3\u5b9a\u662f\u5426\u653e\u884c\uff0c\u540c\u65f6\u65e0\u72b6\u6001\u7684\u63d2\u4ef6\u53ef\u4ee5\u8ba9\u6211\u4eec\u5b9e\u73b0\u66f4\u591a\u7684\u573a\u666f\u590d\u7528\u548c\u80fd\u529b\u6269\u5c55\uff0c\u4f8b\u5982\u8fdb\u884c\u9274\u6743\u7ed3\u679c\u7684\u7f13\u5b58\u5b9e\u73b0\uff0c\u540e\u7eed\u53ea\u9700\u7ef4\u62a4 Adapter \u5373\u53ef\u3002
\n\u5f53\u7136\u6211\u4eec\u4e5f\u53ef\u5c06\u5177\u4f53\u7684\u903b\u8f91\u653e\u5728\u63d2\u4ef6\u91cc\u3002
\n\u6ce8\u610f\uff0c\u672c\u6559\u7a0b\u53ea\u7528\u4e8e\u4e0e APISIX \u548c Authing \u8fdb\u884c\u96c6\u6210\uff0c\u5bf9\u4e8e\u751f\u4ea7\u73af\u5883\u4f7f\u7528\uff0c\u60a8\u9700\u8981\u81ea\u884c\u5f00\u53d1\u63d2\u4ef6\u5e76\u4fdd\u8bc1\u5176\u5b89\u5168\u6027\u53ca\u53ef\u7528\u6027\u7b49\uff0c\u672c\u6587\u6863\u4e0d\u627f\u8bfa\u6b64\u63d2\u4ef6\u53ef\u4ee5\u7528\u4e8e\u751f\u4ea7\u73af\u5883\u3002
\ngit clone https://github.com/apache/apisix-docker.git\ncd apisix-docker/example\ndocker-compose -p docker-apisix up -d\n\n\u5230\u8fd9\u91cc\u53ef\u4ee5\u4f7f\u7528 docker ps \u67e5\u770b apisix docker \u8fdb\u7a0b\u542f\u52a8\u72b6\u6001\uff0c \u968f\u540e\u8bbf\u95ee localhost:9000 \u53ef\u4ee5\u8fdb\u5165 dashboard \u754c\u9762\u8fdb\u884c\u8def\u7531\u548c\u63d2\u4ef6\u7684\u914d\u7f6e\u3002\n
\u767b\u5f55 Authing \u5b98\u7f51\uff1awww.authing.com \uff0c\u8fdb\u884c\u4ee5\u4e0b\u64cd\u4f5c\uff1a
\n
\u914d\u7f6e Token \u7b7e\u540d\u7b97\u6cd5\u4e3a RS256 \u53ca\u6821\u9a8c AccessToken \u7684\u65b9\u5f0f\u4e3a none \u3002
\n
\u8fdb\u5165 Authing \u63a7\u5236\u53f0-\u7528\u6237\u7ba1\u7406-\u7528\u6237\u5217\u8868-\u70b9\u51fb\u521b\u5efa\u7528\u6237\u540e\uff0c\u53ef\u4ee5\u6839\u636e\u4e0d\u540c\u65b9\u5f0f\uff08\u7528\u6237\u540d\u3001\u624b\u673a\u53f7\u3001\u90ae\u7bb1\uff09\u521b\u5efa\u6d4b\u8bd5\u7528\u6237\uff0c\u5982\u4e0b\u56fe\u6240\u793a\uff1a
\n
\u8fdb\u5165 Authing \u63a7\u5236\u53f0-\u6743\u9650\u7ba1\u7406-\u521b\u5efa\u8d44\u6e90\uff0c\u53ef\u4ee5\u9009\u62e9\u521b\u5efa\u6811\u6570\u636e\u7c7b\u578b\u7684\u8d44\u6e90\uff0c\u5982\u4e0b\u56fe\u6240\u793a\uff1a
\n
\u8fdb\u5165\u6743\u9650\u7ba1\u7406-\u6570\u636e\u8d44\u6e90\u6743\u9650-\u6570\u636e\u7b56\u7565\u6807\u7b7e\uff0c\u53ef\u4ee5\u70b9\u51fb\u521b\u5efa\u7b56\u7565\u6765\u65b0\u5efa\u6570\u636e\u8bbf\u95ee\u7b56\u7565\uff0c\u5982\u4e0b\u56fe\u6240\u793a\u3002\u7b56\u7565\u5305\u542b\u4e86\u5bf9\u5e94\u7684\u6743\u9650\u7a7a\u95f4\u4e2d\u5b9a\u4e49\u7684\u6570\u636e\u4ee5\u53ca\u64cd\u4f5c\uff0c\u521b\u5efa\u540e\u80fd\u591f\u57fa\u4e8e\u6b64\u7b56\u7565\u5bf9\u4e0d\u540c\u5bf9\u8c61(\u7528\u6237\u3001\u89d2\u8272\u3001\u7528\u6237\u7ec4\u7b49)\u8fdb\u884c\u6388\u6743\u7ba1\u7406\u3002
\n


APISIX \u4f7f\u7528 unix sock \u4e0e\u63d2\u4ef6\u8fdb\u7a0b\u901a\u4fe1\uff0c\u56e0\u6b64\u9700\u8981\u914d\u7f6e\u5bf9\u5e94\u7684 sock \u7aef\u53e3\uff1a
\n\u9700\u8981\u5c06\u5bbf\u4e3b\u673a\u4e0a\u7684 sock \u6587\u4ef6\u6302\u8f7d\u5230\u5bb9\u5668\u91cc\uff0c\u63d2\u4ef6\u542f\u52a8\u7684\u65f6\u5019\u4f1a\u5728\u5bbf\u4e3b\u673a\u4e0a\u521b\u5efa\u8fd9\u4e2a sock \u6587\u4ef6\uff0c\u6b64\u5904\u9700\u8981\u6ce8\u610f\u7684\u662f\uff0c\u82e5 APISIX \u662f\u5148\u4e8e\u63d2\u4ef6\u542f\u52a8\u7684\uff0c\u5f53\u63d2\u4ef6\u542f\u52a8\u540e\uff0c\u5219\u9700\u8981\u91cd\u542f\u4e0b APISIX \u5bb9\u5668\uff0c\u786e\u4fdd\u63d2\u4ef6\u5148\u4e8e APISIX \u542f\u52a8\u3002
\n\u6587\u4ef6\u4f4d\u7f6e\uff1a /apisix-docker/example/docker-compose.yml apisix \u90e8\u5206
\n apisix:\n image: apache/apisix:latest\n restart: always\n volumes:\n - ./apisix_log:/usr/local/apisix/logs\n - ./apisix_conf/config.yaml:/usr/local/apisix/conf/config.yaml:ro\n - /tmp/runner.sock:/tmp/runner.sock\n\nX-API-KEY\uff1a /apisix/apisix-docker/example/apisix_conf/config.yaml
\n
curl http://127.0.0.1:9180/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '\n{\n \"uri\": \"/*\",\n \"plugins\": {\n \"ext-plugin-pre-req\": {\n \"conf\": [\n {\n \"name\": \"authing_agent\",\n \"value\": \"{\\\"url\\\": \\\"{\u9002\u914d\u670d\u52a1\u7684\u8bbf\u95ee\u5730\u5740}\\\",\\\"user_pool_id\\\": \\\"{\u7528\u6237\u6c60 ID}\\\",\\\"user_pool_secret\\\": \\\"{\u7528\u6237\u6c60\u5bc6\u94a5}\\\"}\"\n }\n ]\n }\n },\n \"upstream\": {\n \"type\": \"roundrobin\",\n \"nodes\": {\n \"httpbin.org:80\": 1\n }\n }\n}'\n\next-plugin-pre-req \u662f\u9700\u8981\u542f\u7528\u7684\u63d2\u4ef6\u7c7b\u578b, \u5728\u914d\u7f6e conf \u4e2d\u9700\u8981\u786e\u5b9a\u4e24\u4e2a\u53d8\u91cf\uff1a
\n\"name\": \u63d2\u4ef6\u540d\u79f0
\n\"value\": \"{\"url\": \"\u9002\u914d\u670d\u52a1\u7684\u8bbf\u95ee\u5730\u5740\",\"user_pool_id\": \"\u7528\u6237\u6c60 ID\",\"user_pool_secret\": \"\u7528\u6237\u6c60\u5bc6\u94a5\"}\"
\u5176\u4e2d\uff0c\u8bbf\u95ee\u5730\u5740\u683c\u5f0f\u4e3a {{domain}}:{{port}}/{{path}}
\n\u4f8b\u5982\uff1a\n\"{\"url\": \"http://192.168.1.123:8080/isAllow\",\"user_pool_id\": \"124u2353h2t24he2u349382u152\",\"user_pool_secret\": \"6435462313i5412njburh2u34\"}\"
\ngit clone https://github.com/apache/apisix-python-plugin-runner.git\n\u8fdb\u5165\u76ee\u5f55 make setup\n\u8fdb\u5165\u76ee\u5f55 make install\n\u8fdb\u5165\u76ee\u5f55\u5e76\u4fee\u6539 apisix/plugins/rewrite.py \u6587\u4ef6\uff0c\u5c06\u8bf7\u6c42\u53c2\u6570\u4f20\u9012\u5230 Authing
\n\u53ef\u4f7f\u7528\u5176\u4ed6\u8bed\u8a00\u5b9e\u73b0\u4f8b\u5982 Java \u3001Go \u3001Lua
\n\u4e4b\u6240\u4ee5\u91c7\u7528 Python \u7684\u539f\u56e0\u662f\u56e0\u4e3a\u73af\u5883\u521d\u59cb\u5316\u6bd4\u8f83\u7b80\u5355\uff0c\u53ef\u4ee5\u8ba9\u5f00\u53d1\u8005\u5feb\u901f\u4e86\u89e3 APISIX \u7684\u63d2\u4ef6\u7684\u5f00\u53d1\u673a\u5236\u3002
\nhttps://apisix.apache.org/docs/apisix/external-plugin/
\nfrom typing import Any\nfrom apisix.runner.http.request import Request\nfrom apisix.runner.http.response import Response\nfrom apisix.runner.plugin.core import PluginBase\nimport json\nimport requests\nimport json\n\ndef isAllow(request,config):\n return requests.request(\"POST\", \n config.get(\"url\"), \n headers={\n 'Content-Type': 'application/json'\n }, \n data=json.dumps({\n \"request\": request,\n \"pluginConfig\": config\n }))\n\n\n\nclass Rewrite(PluginBase):\n\n def name(self) -> str:\n return \"authing_agent\"\n\n def config(self, conf: Any) -> Any:\n return conf\n\n def filter(self, conf: Any, request: Request, response: Response):\n # \u7ec4\u88c5 Adapter \u8bf7\u6c42\u53c2\u6570\n authing_request = {\n \"uri\": request.get_uri(),\n \"method\": request.get_method(),\n \"args\":request.get_args(),\n \"headers\":request.get_headers(),\n \"request_id\":request.get_id(),\n \"host\":request.get_var(\"host\"),\n \"remote_addr\": request.get_remote_addr(),\n \"configs\": request.get_configs()\n }\n # \u63a5\u6536 Adapter \u54cd\u5e94\u5224\u65ad\u662f\u5426\u653e\u884c\n authing_respOnse= isAllow(authing_request,eval(conf))\n if authing_response.text != \"ok\":\n response.set_status_code(authing_response.status_code)\n response.set_body(authing_response.text) \n\nnohup make dev & #\u540e\u53f0\u8fd0\u884c agent \u7a0b\u5e8f\n\n\u542f\u52a8\u4ee3\u7406 Authing \u670d\u52a1\uff08\u81ea\u884c\u5b9e\u73b0\u5bf9\u5e94\u63a5\u53e3\uff0c\u4ee5 springboot \u4e3a\u4f8b\uff0c\u63a5\u53e3\u7ed3\u6784\u5982\u4e0b\uff09
\n
IsAllowController.java
\npackage cn.authing.apisix.adapter.controller;\n\nimport cn.authing.apisix.adapter.entity.APISIXRquestParams;\nimport cn.authing.sdk.java.client.ManagementClient;\nimport cn.authing.sdk.java.dto.CheckPermissionDto;\nimport cn.authing.sdk.java.dto.CheckPermissionRespDto;\nimport cn.authing.sdk.java.dto.CheckPermissionsRespDto;\nimport cn.authing.sdk.java.model.ManagementClientOptions;\nimport cn.hutool.http.HttpStatus;\nimport cn.hutool.http.HttpUtil;\nimport com.google.gson.Gson;\nimport com.nimbusds.jose.JOSEException;\nimport com.nimbusds.jose.JWSAlgorithm;\nimport com.nimbusds.jose.JWSObject;\nimport com.nimbusds.jose.jwk.source.JWKSource;\nimport com.nimbusds.jose.jwk.source.RemoteJWKSet;\nimport com.nimbusds.jose.proc.BadJOSEException;\nimport com.nimbusds.jose.proc.JWSKeySelector;\nimport com.nimbusds.jose.proc.JWSVerificationKeySelector;\nimport com.nimbusds.jose.proc.SecurityContext;\nimport com.nimbusds.jwt.JWTClaimsSet;\nimport com.nimbusds.jwt.proc.ConfigurableJWTProcessor;\nimport com.nimbusds.jwt.proc.DefaultJWTProcessor;\nimport jakarta.servlet.http.HttpServletResponse;\nimport lombok.extern.slf4j.Slf4j;\nimport org.springframework.util.StopWatch;\nimport org.springframework.util.StringUtils;\nimport org.springframework.web.bind.annotation.PostMapping;\nimport org.springframework.web.bind.annotation.RequestBody;\nimport org.springframework.web.bind.annotation.RestController;\n\nimport java.net.MalformedURLException;\nimport java.net.URL;\nimport java.text.ParseException;\nimport java.util.Arrays;\nimport java.util.HashMap;\nimport java.util.List;\nimport java.util.Map;\n\n/**\n * @author Gao FeiHu\n * @version 1.0.0\n * @date 2022.12.22\n * @email gaofeihu@authing.cn\n */\n@RestController\n@Slf4j\npublic class IsAllowController {\n\n /**\n * \u7528\u6237\u6c60 ID\n */\n public static String ACCESS_KEY_ID = \"\";\n /**\n * \u7528\u6237\u6c60\u5bc6\u94a5\n */\n public static String ACCESS_KEY_SECRET = \"\";\n /**\n * Authing SDK\n * See\n * https://docs.authing.cn/v3/reference/\n */\n ManagementClient managementClient;\n\n /**\n * \u521d\u59cb\u5316 ManagementClient\n *\n * @param ak \u7528\u6237\u6c60 ID\n * @param aks \u7528\u6237\u6c60\u5bc6\u94a5\n */\n public void init(String ak, String aks) {\n log.info(\"init ManagementClient ......\");\n try {\n // \u4fdd\u5b58\u7528\u6237\u6c60 ID \u548c\u5bc6\u94a5\n ACCESS_KEY_ID = ak;\n ACCESS_KEY_SECRET = aks;\n // \u521d\u59cb\u5316\n ManagementClientOptions optiOns= new ManagementClientOptions();\n options.setAccessKeyId(ak);\n options.setAccessKeySecret(aks);\n managementClient = new ManagementClient(options);\n } catch (Exception e) {\n e.printStackTrace();\n System.err.println(\"\u521d\u59cb\u5316 managementClient \u5931\u8d25\uff0c\u53ef\u80fd\u65e0\u6cd5\u8bf7\u6c42\uff01\");\n }\n }\n\n /**\n * \u662f\u5426\u653e\u884c\n *\n * @param apisixRquestParams \u8bf7\u6c42 body \uff0c\u5305\u542b\u4e86 APISIX \u63d2\u4ef6\u7684\u914d\u7f6e\u4ee5\u53ca\u8bf7\u6c42\u4e0a\u4e0b\u6587\n * @param response HttpServletResponse\n * @return 200 OK \u653e\u884c\n * 403 forbidden \u7981\u6b62\u8bbf\u95ee\n * 500 internal server error \u8bf7\u6c42\u9519\u8bef \u53ef\u6839\u636e\u5b9e\u9645\u9700\u6c42\u653e\u884c\u6216\u62d2\u7edd\n */\n @PostMapping(\"/isAllow\")\n public Object isAllow(@RequestBody APISIXRquestParams apisixRquestParams, HttpServletResponse response) {\n\n // \u8bf7\u6c42\u8ba1\u65f6\u5668\n StopWatch stopWatch = new StopWatch();\n stopWatch.start();\n\n // \u8bf7\u6c42 ID \u4e0e APISIX \u4e00\u81f4\n String requestID = apisixRquestParams.getRequest().getRequest_id();\n\n log.info(\"{} ==> \u8bf7\u6c42\u5165\u53c2 : {} \", requestID, new Gson().toJson(apisixRquestParams));\n\n try {\n // 0. \u82e5\u63d2\u4ef6\u4e3a\u591a\u5b9e\u4f8b\u7528\u4e8e\u5b9e\u73b0\u4e0d\u540c\u4e1a\u52a1\u903b\u8f91\uff0c\u6b64\u5904\u53ef\u5bf9\u5e94\u4fee\u6539\u4e3a\u591a\u5b9e\u4f8b\u6a21\u5f0f\n if (managementClient == null || !ACCESS_KEY_ID.equals(apisixRquestParams.getPluginConfig().get(\"user_pool_id\"))) {\n init((String) apisixRquestParams.getPluginConfig().get(\"user_pool_id\"), (String) apisixRquestParams.getPluginConfig().get(\"user_pool_secret\"));\n }\n\n // 1. \u62ff\u5230 accessToken\n String authorization = (String) apisixRquestParams.getRequest().getHeaders().get(\"authorization\");\n if (!StringUtils.hasLength(authorization)) {\n return result(response, stopWatch, requestID, HttpStatus.HTTP_UNAUTHORIZED, \"HTTP_UNAUTHORIZED\");\n }\n\n String accessToken = authorization;\n if (authorization.startsWith(\"Bearer\")) {\n accessToken = authorization.split(\" \")[1].trim();\n }\n\n\n log.info(\"{} ==> accessToken : {} \", requestID, accessToken);\n // 2. \u89e3\u6790 accessToken \u62ff\u5230\u5e94\u7528 ID \u548c\u7528\u6237 ID\n JWSObject parse = JWSObject.parse(accessToken);\n Map<String, Object> payload = parse.getPayload().toJSONObject();\n String aud = (String) payload.get(\"aud\");\n String sub = (String) payload.get(\"sub\");\n\n // 3. \u6821\u9a8c accessToken\n // \u5728\u7ebf\u6821\u9a8c\n String result = onlineValidatorAccessToken(accessToken, aud);\n log.info(\"{} ==> accessToken \u5728\u7ebf\u7ed3\u679c : {} \", requestID, result);\n if (!result.contains(\"{\\\"active\\\":true\")) {\n return result(response, stopWatch, requestID, HttpStatus.HTTP_UNAUTHORIZED, \"HTTP_UNAUTHORIZED\");\n }\n\n// // \u79bb\u7ebf\u6821\u9a8c\n// if (null == offlineValidatorAccessToken(accessToken, aud)) {\n// return result(response, stopWatch, requestID, HttpStatus.HTTP_UNAUTHORIZED, \"HTTP_UNAUTHORIZED\");\n// }\n\n // 4. \u83b7\u53d6\u5230 APISIX \u4e2d\u7684\u8bf7\u6c42\u65b9\u6cd5\uff0c\u5bf9\u5e94 Authing \u6743\u9650\u4e2d\u7684 action\n String action = apisixRquestParams.getRequest().getMethod();\n\n // 5. \u83b7\u53d6\u5230 APISIX \u4e2d\u7684\u8bf7\u6c42\u8def\u5f84\n String resource = apisixRquestParams.getRequest().getUri();\n\n // 6. \u53bb Authing \u8bf7\u6c42\uff0c\u5224\u65ad\u662f\u5426\u6709\u6743\u9650\n // TODO \u53ef\u5728\u6b64\u6dfb\u52a0 Redis \u5bf9\u6821\u9a8c\u7ed3\u679c\u8fdb\u884c\u7f13\u5b58\n CheckPermissionDto reqDto = new CheckPermissionDto();\n reqDto.setUserId(sub);\n reqDto.setNamespaceCode(aud);\n reqDto.setResources(Arrays.asList(resource.substring(1, resource.length())));\n reqDto.setAction(action);\n CheckPermissionRespDto checkPermissiOnRespDto= managementClient.checkPermission(reqDto);\n log.info(new Gson().toJson(checkPermissionRespDto));\n\n // 7. \u7531\u4e8e\u6211\u4eec\u662f\u5355\u4e2a resource \u6821\u9a8c\uff0c\u6240\u4ee5\u53ea\u9700\u8981\u5224\u65ad\u7b2c\u4e00\u4e2a\u5143\u7d20\u5373\u53ef\n List<CheckPermissionsRespDto> resultList = checkPermissionRespDto.getData().getCheckResultList();\n if (resultList.isEmpty() || resultList.get(0).getEnabled() == false) {\n return result(response, stopWatch, requestID, HttpStatus.HTTP_FORBIDDEN, \"HTTP_FORBIDDEN\");\n }\n\n return result(response, stopWatch, requestID, HttpStatus.HTTP_OK, \"ok\");\n\n } catch (Exception e) {\n e.printStackTrace();\n log.error(\"\u8bf7\u6c42\u9519\u8bef\uff01\", e);\n return result(response, stopWatch, requestID, HttpStatus.HTTP_INTERNAL_ERROR, e.getMessage());\n }\n }\n\n\n public String result(HttpServletResponse response, StopWatch stopWatch, String requestID, int status, String msg) {\n stopWatch.stop();\n log.info(\"{} ==> \u8bf7\u6c42\u8017\u65f6\uff1a{} , \u8bf7\u6c42\u51fa\u53c2 : http_status_code={},msg={} \", requestID, stopWatch.getTotalTimeMillis() + \"ms\", status, msg);\n response.setStatus(status);\n return msg;\n }\n\n\n public String onlineValidatorAccessToken(String accessToken, String aud) {\n HashMap<String, Object> paramMap = new HashMap<>();\n paramMap.put(\"token\", accessToken);\n paramMap.put(\"token_type_hint\", \"access_token\");\n paramMap.put(\"client_id\", aud);\n return HttpUtil.post(\"https://api.authing.cn/\" + aud + \"/oidc/token/introspection\", paramMap);\n\n }\n\n public JWTClaimsSet offlineValidatorAccessToken(String accessToken, String aud) {\n try {\n ConfigurableJWTProcessor<SecurityContext> jwtProcessor =\n new DefaultJWTProcessor<>();\n JWKSource<SecurityContext> keySource =\n null;\n\n keySource = new RemoteJWKSet<>(new URL(\"https://api.authing.cn/\" + aud + \"/oidc/.well-known/jwks.json\"));\n\n JWSAlgorithm expectedJWSAlg = JWSAlgorithm.RS256;\n\n JWSKeySelector<SecurityContext> keySelector =\n new JWSVerificationKeySelector<>(expectedJWSAlg, keySource);\n\n jwtProcessor.setJWSKeySelector(keySelector);\n\n return jwtProcessor.process(accessToken, null);\n } catch (MalformedURLException e) {\n e.printStackTrace();\n } catch (ParseException e) {\n e.printStackTrace();\n } catch (BadJOSEException e) {\n e.printStackTrace();\n } catch (JOSEException e) {\n e.printStackTrace();\n } finally {\n return null;\n }\n }\n}\n\nAPISIXRquestParams.java
\npackage cn.authing.apisix.adapter.entity;\n\nimport lombok.Data;\nimport lombok.ToString;\n\nimport java.util.Map;\n\n/**\n * APISIX \u8bf7\u6c42\u5b9e\u4f53\u7c7b\n */\n@Data\n@ToString\npublic class APISIXRquestParams {\n /**\n * APISIX \u8bf7\u6c42\u4e0a\u4e0b\u6587\n */\n APISIXRequest request;\n /**\n * \u63d2\u4ef6\u914d\u7f6e\n */\n Map<String, Object> pluginConfig;\n\n}\n\nAPISIXRequest.java
\npackage cn.authing.apisix.adapter.entity;\n\nimport lombok.Data;\nimport lombok.ToString;\n\nimport java.util.Map;\n\n@Data\n@ToString\npublic class APISIXRequest {\n private String uri;\n private String method;\n private String request_id;\n private String host;\n private String remote_addr;\n private Map<String, Object> args;\n private Map<String, Object> headers;\n private Map<String, Object> configs;\n}\n\n


404 \u662f\u56e0\u4e3a\u4e0a\u6e38\u670d\u52a1\u6ca1\u6709\u8fd9\u4e2a\u63a5\u53e3\uff0c\u4f46\u8ba4\u8bc1\u548c API \u9274\u6743\u5df2\u7ecf\u901a\u8fc7
\n\u5982\u679c\u60a8\u9700\u8981\u5bf9 API \u8fdb\u884c\u7ec6\u9897\u7c92\u5ea6\u7684\u7ba1\u7406\u53ef\u4ee5\u901a\u8fc7\u672c\u65b9\u6848\u6765\u5b9e\u73b0\uff0c\u6211\u4eec\u53ef\u4ee5\u5728 Adapter \u5b9e\u73b0\u66f4\u52a0\u7ec6\u7c92\u5ea6\u7684 API \u8bbf\u95ee\u63a7\u5236\u4ee5\u53ca\u66f4\u52a0\u573a\u666f\u5316\u7684\u6743\u9650\u65b9\u6848\u3002
\n" }, { "author": { "url": "member/Authing", "name": "Authing", "avatar": "https://cdn.v2ex.com/avatar/b759/896b/570457_large.png?m=1683190646" }, "url": "t/926868", "title": "Authing \u7ed3\u5408 APISIX \u5b9e\u73b0\u7edf\u4e00\u53ef\u914d\u7f6e API \u6743\u9650\u7f51\u5173\uff08\u5feb\u901f\u542f\u52a8\u7248\uff09", "id": "t/926868", "date_published": "2023-03-24T07:22:38+00:00", "content_html": "\u5f53\u5f00\u53d1\u8005\u5728\u6784\u5efa\u7f51\u7ad9\u3001\u79fb\u52a8\u8bbe\u5907\u6216\u7269\u8054\u7f51\u5e94\u7528\u7a0b\u5e8f\u65f6\uff0c\u53ef\u80fd\u9700\u8981\u4f7f\u7528 API \u7f51\u5173\u6765\u5904\u7406\u63a5\u53e3\u6d41\u91cf\u3002\u800c\u5728\u5b9e\u9645\u4e1a\u52a1\u573a\u666f\u4e2d\uff0c\u9664\u53bb\u5c11\u90e8\u5206\u5141\u8bb8\u533f\u540d\u8005\u8bbf\u95ee\u7684 API \u5916\uff0cAPI \u63d0\u4f9b\u8005\u901a\u5e38\u4f1a\u5bf9 API \u4f7f\u7528\u8005\u8fdb\u884c\u6743\u9650\u7ba1\u63a7\uff0c\u53ea\u5141\u8bb8\u7b26\u5408\u8bbf\u95ee\u8981\u6c42\u7684\u4f7f\u7528\u8005\u8bbf\u95ee\u8be5 API \u3002\u5176\u6b21\uff0c\u6743\u9650\u7ba1\u63a7\u6d89\u53ca\u5230\u6743\u9650\u7b56\u7565\uff0c\u5bf9\u4e8e\u4e0d\u540c\u6761\u4ef6\u4e14\u5747\u7b26\u5408\u8bbf\u95ee\u8981\u6c42\u7684\u4f7f\u7528\u8005\u505a\u6743\u9650\u533a\u5206\u3002\u672c\u6587\u5c06\u5e26\u4f60\u5feb\u901f\u521b\u5efa\u4f7f\u7528 Authing \u7ed3\u5408 APISIX \u5b9e\u73b0\u7edf\u4e00\u53ef\u914d\u7f6e API \u6743\u9650\u7f51\u5173\u3002
\nAuthing \u662f\u56fd\u5185\u9996\u6b3e\u4ee5\u5f00\u53d1\u8005\u4e3a\u4e2d\u5fc3\u7684\u5168\u573a\u666f\u8eab\u4efd\u4e91\u4ea7\u54c1\uff0c\u96c6\u6210\u4e86\u6240\u6709\u4e3b\u6d41\u8eab\u4efd\u8ba4\u8bc1\u534f\u8bae\uff0c\u4e3a\u4f01\u4e1a\u548c\u5f00\u53d1\u8005\u63d0\u4f9b\u5b8c\u5584\u5b89\u5168\u7684\u7528\u6237\u8ba4\u8bc1\u548c\u8bbf\u95ee\u7ba1\u7406\u670d\u52a1\u3002\u4ee5\u300c API First \u300d\u4f5c\u4e3a\u4ea7\u54c1\u57fa\u77f3\uff0c\u628a\u8eab\u4efd\u9886\u57df\u6240\u6709\u5e38\u7528\u529f\u80fd\u90fd\u8fdb\u884c\u4e86\u6a21\u5757\u5316\u7684\u5c01\u88c5\uff0c\u901a\u8fc7\u5168\u573a\u666f\u7f16\u7a0b\u8bed\u8a00 SDK \u5c06\u6240\u6709\u80fd\u529b API \u5316\u63d0\u4f9b\u7ed9\u5f00\u53d1\u8005\u3002\u540c\u65f6\uff0c\u7528\u6237\u53ef\u4ee5\u7075\u6d3b\u7684\u4f7f\u7528 Authing \u5f00\u653e\u7684 RESTful APIs \u8fdb\u884c\u529f\u80fd\u62d3\u5c55\uff0c\u6ee1\u8db3\u4e0d\u540c\u4f01\u4e1a\u4e0d\u540c\u4e1a\u52a1\u573a\u666f\u4e0b\u7684\u8eab\u4efd\u548c\u6743\u9650\u7ba1\u7406\u9700\u6c42\u3002
\nApache APISIX \u662f\u4e00\u4e2a\u52a8\u6001\u3001\u5b9e\u65f6\u3001\u9ad8\u6027\u80fd\u7684 API \u7f51\u5173\uff0c\u63d0\u4f9b\u8d1f\u8f7d\u5747\u8861\u3001\u52a8\u6001\u4e0a\u6e38\u3001\u7070\u5ea6\u53d1\u5e03\u3001\u670d\u52a1\u7194\u65ad\u3001\u8eab\u4efd\u8ba4\u8bc1\u3001\u53ef\u89c2\u6d4b\u6027\u7b49\u4e30\u5bcc\u7684\u6d41\u91cf\u7ba1\u7406\u529f\u80fd\u3002Apache APISIX \u4e0d\u4ec5\u652f\u6301\u63d2\u4ef6\u52a8\u6001\u53d8\u66f4\u548c\u70ed\u63d2\u62d4\uff0c\u800c\u4e14\u62e5\u6709\u4f17\u591a\u5b9e\u7528\u7684\u63d2\u4ef6\u3002Apache APISIX \u7684 OpenID Connect \u63d2\u4ef6\u652f\u6301 OpenID Connect \u534f\u8bae\uff0c\u7528\u6237\u53ef\u4ee5\u4f7f\u7528\u8be5\u63d2\u4ef6\u8ba9 Apache APISIX \u5bf9\u63a5 Authing \u670d\u52a1\uff0c\u4f5c\u4e3a\u96c6\u4e2d\u5f0f\u8ba4\u8bc1\u7f51\u5173\u90e8\u7f72\u4e8e\u4f01\u4e1a\u4e2d\u3002
\n\u901a\u8fc7 Authing \u6743\u9650\u7ba1\u7406 + APISIX \u5b9e\u73b0 API \u7684\u8bbf\u95ee\u63a7\u5236\u3002
\n\u6848\u4f8b\uff1a\u6211\u4eec\u5e0c\u671b\u7528\u6237\u5728 Authing \u8fdb\u884c\u8ba4\u8bc1\u540e\u8bbf\u95ee\u5230\u88ab\u6388\u6743\u7684 API \u3002\n( https://console.authing.cn/api/v2/get_console_context \uff09
\n\u6ce8\u610f\uff0c\u672c\u6559\u7a0b\u53ea\u7528\u4e8e\u4e0e APISIX \u548c Authing \u8fdb\u884c\u96c6\u6210\u6d4b\u8bd5\u3002\u540e\u7eed\u6211\u4eec\u5c06\u53d1\u5e03\u300a Authing \u7ed3\u5408 APISIX \u5b9e\u73b0\u7edf\u4e00\u53ef\u914d\u7f6e API \u6743\u9650\u7f51\u5173\uff08\u63d2\u4ef6\u5f00\u53d1\u7248\uff09\u300b\u3002
\n
\u9700\u8981\u81ea\u884c\u63d0\u524d\u5b89\u88c5\uff0cdocker \u548c docker-compose \u3002
\nwget https://raw.githubusercontent.com/fehu-asia/authing-apisix-docker-compose/main/apisix-authing.tgz --no-check-certificate\n\ntar -zxvf apisix-authing.tgz -C / && cd /apisix && docker-compose -p docker-apisix up -d\n\n\u5230\u8fd9\u91cc\u53ef\u4ee5\u4f7f\u7528 docker ps \u67e5\u770b apisix docker \u8fdb\u7a0b\u542f\u52a8\u72b6\u6001\uff0c \u968f\u540e\u8bbf\u95ee {your server IP}:9000 \u53ef\u4ee5\u8fdb\u5165 dashboard \u754c\u9762\u8fdb\u884c\u8def\u7531\u548c\u63d2\u4ef6\u7684\u914d\u7f6e\u3002
\n
Authing \u5b98\u7f51\uff1awww.authing.com \u3002\u6216\u70b9\u51fb\u6587\u7ae0\u5e95\u90e8\u9605\u8bfb\u539f\u6587\u3002
\n
\u914d\u7f6e Token \u7b7e\u540d\u7b97\u6cd5\u4e3a RS256 \u53ca\u6821\u9a8c AccessToken \u7684\u65b9\u5f0f\u4e3a none \u3002
\n
\u8fdb\u5165 Authing \u63a7\u5236\u53f0-\u7528\u6237\u7ba1\u7406-\u7528\u6237\u5217\u8868-\u70b9\u51fb\u521b\u5efa\u7528\u6237\u540e\uff0c\u53ef\u4ee5\u6839\u636e\u4e0d\u540c\u65b9\u5f0f\uff08\u7528\u6237\u540d\u3001\u624b\u673a\u53f7\u3001\u90ae\u7bb1\uff09\u521b\u5efa\u6d4b\u8bd5\u7528\u6237\uff0c\u5982\u4e0b\u56fe\u6240\u793a\uff1a
\n
\u8fdb\u5165 Authing \u63a7\u5236\u53f0-\u6743\u9650\u7ba1\u7406-\u521b\u5efa\u8d44\u6e90\uff0c\u53ef\u4ee5\u9009\u62e9\u521b\u5efa\u6811\u6570\u636e\u7c7b\u578b\u7684\u8d44\u6e90\uff0c\u5982\u4e0b\u56fe\u6240\u793a\uff1a
\n


\u6dfb\u52a0\u76f8\u5173\u64cd\u4f5c\uff0c\u8fd9\u91cc\u6211\u4eec\u7684\u64cd\u4f5c\u5bf9\u5e94 HTTP \u7684\u8bf7\u6c42\u65b9\u6cd5\uff1a
\n
\u8fdb\u5165\u6743\u9650\u7ba1\u7406-\u6570\u636e\u8d44\u6e90\u6743\u9650-\u6570\u636e\u7b56\u7565\u6807\u7b7e\uff0c\u53ef\u4ee5\u70b9\u51fb\u521b\u5efa\u7b56\u7565\u6765\u65b0\u5efa\u6570\u636e\u8bbf\u95ee\u7b56\u7565\uff0c\u5982\u4e0b\u56fe\u6240\u793a\u3002\u7b56\u7565\u5305\u542b\u4e86\u5bf9\u5e94\u7684\u6743\u9650\u7a7a\u95f4\u4e2d\u5b9a\u4e49\u7684\u6570\u636e\u4ee5\u53ca\u64cd\u4f5c\uff0c\u521b\u5efa\u540e\u80fd\u591f\u57fa\u4e8e\u6b64\u7b56\u7565\u5bf9\u4e0d\u540c\u5bf9\u8c61(\u7528\u6237\u3001\u89d2\u8272\u3001\u7528\u6237\u7ec4\u7b49)\u8fdb\u884c\u6388\u6743\u7ba1\u7406\u3002
\n


\u5728 APISIX \u5bbf\u4e3b\u673a\u4e0a\u6267\u884c\u3002
\n\u6ce8\u610f\uff0c\u9700\u8981\u66ff\u6362\u8bf7\u6c42\u53c2\u6570\u4e2d\u7684\u7528\u6237\u6c60 ID \u4ee5\u53ca\u5bc6\u94a5\u3002
\ncurl http://127.0.0.1:9180/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '\n{\n \"uri\": \"/*\",\n \"name\": \"authing_router\",\n \"plugins\": {\n \"ext-plugin-pre-req\": {\n \"allow_degradation\": false,\n \"conf\": [\n {\n \"name\": \"authing_agent\",\n \"value\": \"{\\\"url\\\": \\\"http://authing-adapter:18080/isAllow\\\",\\\"user_pool_id\\\": \\\"{\u7528\u6237\u6c60 ID}\\\",\\\"user_pool_secret\\\": \\\"{\u7528\u6237\u6c60\u5bc6\u94a5}\\\"}\"\n }\n ],\n \"disable\": false\n }\n },\n \"upstream\": {\n \"nodes\": [\n {\n \"host\": \"console.authing.cn\",\n \"port\": 443,\n \"weight\": 1\n }\n ],\n \"timeout\": {\n \"connect\": 6,\n \"send\": 6,\n \"read\": 6\n },\n \"type\": \"roundrobin\",\n \"scheme\": \"https\",\n \"pass_host\": \"node\",\n \"keepalive_pool\": {\n \"idle_timeout\": 60,\n \"requests\": 1000,\n \"size\": 320\n }\n },\n \"status\": 1\n}'\n\nupstream \u6211\u4eec\u5728\u8fd9\u91cc\u4f7f\u7528\u7684\u662f httpbin.org \uff0chttpbin.org \u662f\u4e00\u4e2a\u7b80\u5355\u7684\u5728\u7ebf\u63d0\u4f9b HTTP \u670d\u52a1\u7684\u7f51\u7ad9\uff0c\u60a8\u53ef\u4ee5\u5c06\u5176\u7528\u4e8e\u6d4b\u8bd5\uff0c\u60a8\u4e5f\u53ef\u4ee5\u5c06\u5176\u4fee\u6539\u4e3a\u81ea\u5df1\u7684\u5b9e\u9645 API \u670d\u52a1\u5730\u5740\u3002
\nX-API-KEY \u6240\u5728\u4f4d\u7f6e\uff1a/apisix/apisix_conf/config.yaml
\n\u82e5\u60a8\u4fee\u6539\u4e86\u6b64\u5b57\u6bb5\u5219\u9700\u8981\u5728 curl \u8bf7\u6c42\u4e2d\u8fdb\u884c\u4fee\u6539\uff1a
\n
\u76ee\u6807\uff1a\u5f53\u7528\u6237\u8ba4\u8bc1\u5e76\u643a\u5e26\u6709\u6548\u7684 AccessToken \u4e14\u8bbf\u95ee\u7684 uri \u662f\u88ab\u6388\u6743\u7684\uff0c\u65b9\u53ef\u6b63\u5e38\u8c03\u7528 API \u3002
\n\u8ba9\u6211\u4eec\u5148\u53bb Authing \u7684\u5e94\u7528\u8fdb\u884c\u8ba4\u8bc1\uff0c\u83b7\u53d6\u88ab\u6388\u6743\u7528\u6237\u7684 accessToken \u3002
\n

\u590d\u5236\u8fd9\u4e2a access_token \u63a5\u4e0b\u6765\u6d4b\u8bd5\u4f1a\u7528\u5230\u3002
\n

curl --location --request GET 'http://{\u670d\u52a1\u5668 IP}:9080/xxxx'\n\n
curl --location --request GET 'http://{\u670d\u52a1\u5668 IP}:9080/xxxx' \\\n--header 'Authorization: Bearer {accessToken}'\n\n
curl --location --request GET 'http://{\u670d\u52a1\u5668 IP}:9080/api/v2/get_console_context' \\\n--header 'Authorization: Bearer {accessToken}'\n\n\u5728\u6b64\u65b9\u6848\u57fa\u7840\u4e0a\u6211\u4eec\u4e5f\u53ef\u4ee5\u5b9e\u73b0\u7edf\u4e00\u7684\u5b89\u5168\u5ba1\u8ba1\u3001\u7528\u6237\u884c\u4e3a\u8f68\u8ff9\u5206\u6790\u3001\u7528\u6237\u8bbf\u95ee\u98ce\u9669\u8bc4\u4f30\u7b49\uff0c\u7528\u4ee5\u5b9e\u73b0\u5168\u94fe\u8def API \u8bbf\u95ee\u6cbb\u7406\u3002
\n" }, { "author": { "url": "member/jalena", "name": "jalena", "avatar": "https://cdn.v2ex.com/gravatar/b966aaabe36d4274eba28ef301495149?s=73&d=retro" }, "url": "t/925539", "title": "\u505a\u4e00\u4e2a\u63a5\u53e3\u7684\u4e2d\u95f4\u4ef6\u6709\u90a3\u4e9b\u6280\u672f\u6808\u53ef\u4ee5\u76f4\u63a5\u62ff\u6765\u7528\u5462\uff1f", "id": "t/925539", "date_published": "2023-03-20T06:07:34+00:00", "content_html": "\u6700\u8fd1\u9879\u76ee\u9700\u8981\u6574\u4e00\u4e2a\u63a5\u53e3\u7684\u4e2d\u95f4\u4ef6\uff08 ERP - \u4e2d\u95f4\u4ef6 - \u5176\u4ed6\u7cfb\u7edf\uff09
\n\u56e0\u4e3a ERP \u8fd9\u8fb9\u6709\u8981\u6c42\u4e0d\u8981\u76f4\u63a5\u5bf9\u63a5\u5176\u4ed6\u7cfb\u7edf\uff0c\u4e2d\u95f4\u4ef6\u9700\u8981\u505a\u4e00\u4e9b\u63a5\u53e3\u7684\u6570\u636e\u8f6c\u6362\u52a0\u5de5\u5de5\u4f5c\uff0c\u6c42\u63a8\u8350\u70b9\u6280\u672f\u601d\u8def\u3002\u3002
\n\u6700\u597d\u662f Java \u6216\u8005 Python \u7684
\n" }, { "author": { "url": "member/lituancheng", "name": "lituancheng", "avatar": "https://cdn.v2ex.com/gravatar/71bbf1408a3293b6807bd5d74663b2a8?s=73&d=retro" }, "url": "t/891342", "title": "\u4e2a\u4eba\u5f00\u53d1\u7684\u514d\u8d39 API \u5e73\u53f0\uff08\u5305\u542b ip \u5f52\u5c5e\u5730\u3001\u624b\u673a\u53f7\u5f52\u5c5e\u5730\uff0c\u7ecf\u7eac\u5ea6\u67e5\u8be2\u3001\u5929\u6c14\u9884\u62a5\u67e5\u8be2\u7b49\uff09", "id": "t/891342", "date_published": "2022-10-31T02:14:06+00:00", "content_html": "apiKey \u901a\u8fc7\u6211\u81ea\u5df1\u7684\u516c\u4f17\u53f7\u4e0b\u53d1\uff0c\u5355\u4e2a apiKey \u6bcf\u65e5 5w \u6b21\u8c03\u7528\u989d\u5ea6\u3002
\n\u6587\u6863\u94fe\u63a5\uff1a https://api-ltc1.doc.coding.io/
\n\u6709\u7591\u95ee\u6216\u8005\u95ee\u9898\u53ef\u4ee5\u53d1\u8bc4\u8bba\u533a
\n" }, { "author": { "url": "member/ggvm", "name": "ggvm", "avatar": "https://cdn.v2ex.com/gravatar/c2628663ed1740091d359dd1cf55bca1?s=73&d=retro" }, "url": "t/870596", "title": "\u5206\u4eab\u4e2a\u624b\u673a\u53f7+\u540d\u5b57\u4e8c\u8981\u7d20\u5b9e\u540d \u6bd4\u8f83\u4fbf\u5b9c API \u7684\u6e20\u9053", "id": "t/870596", "date_published": "2022-08-04T03:17:57+00:00", "content_html": "\u56e0\u4e1a\u52a1\u9700\u8981\u505a\u5b9e\u540d\u5236\u9a8c\u8bc1\u30021 \uff0c\u4e4b\u524d\u6709\u7528 Imazing \u5907\u4efd\u8fc7\u767e\u5ea6\u4e91\n2 \uff0c\u7136\u540e\u4fee\u6539\u4e86\u5bc6\u7801\u5fd8\u8bb0\u4e86\uff0c\u4e00\u76f4\u4e5f\u6ca1\u5728\u7528\uff0c\u73b0\u5728\u60f3\u4e0b\u8f7d\u91cc\u9762\u7684\u901a\u8baf\u5f55\u8ddf\u4e00\u4e9b\u6587\u4ef6\uff0c\u8fd8\u6709\u529e\u6cd5\u5417\uff1f\n3 \uff0c\u73b0\u5728\u53ea\u6709 Imazing \uff0c\u6062\u590d\u5230 iPhone \u4e0a\uff0c\u53ea\u8981\u8054\u7f51\u5c31\u5f3a\u884c\u88ab\u9000\u51fa\u4e86\uff0c\u6709\u5176\u4ed6\u529e\u6cd5\u80fd\u4e0b\u8f7d\u91cc\u9762\u7684\u901a\u8baf\u5f55\u8ddf\u6587\u4ef6\u5417\uff1f
\n" }, { "author": { "url": "member/Parry", "name": "Parry", "avatar": "https://cdn.v2ex.com/avatar/1474/7ce6/35923_large.png?m=1767146301" }, "url": "t/863535", "title": "\u5168\u56fd\u5927\u5b66\u9ad8\u6821\u57fa\u7840\u4fe1\u606f API \u63a5\u53e3", "id": "t/863535", "date_published": "2022-07-01T14:53:47+00:00", "content_html": "\u5168\u56fd\u5927\u5b66\u9ad8\u6821\u57fa\u7840\u4fe1\u606f API \u63a5\u53e3
\n\u63d0\u4f9b\u5168\u56fd\u5927\u5b66\u9ad8\u6821\u57fa\u7840\u4fe1\u606f\u3002
\n
API \u8be6\u60c5\u5730\u5740: https://www.gugudata.com/api/details/college
\n\u63a5\u53e3\u8bf7\u6c42\u5730\u5740: https://api.gugudata.com/location/college
\n\u8fd4\u56de\u683c\u5f0f: application/json; charset=utf-8
\n\u8bf7\u6c42\u65b9\u5f0f: GET
\n\u8bf7\u6c42\u534f\u8bae: HTTPS
\n\u8bf7\u6c42\u793a\u4f8b: https://api.gugudata.com/location/college?appkey=YOUR_APPKEY&keywords=YOUR_VALUE&pagesize=10&pageindex=1&keywordstrict=false&collegecategory=
\n\u63a5\u53e3\u6d4b\u8bd5: https://api.gugudata.com/location/college/demo
\n| \u53c2\u6570\u540d | \n\u53c2\u6570\u7c7b\u578b | \n\u662f\u5426\u5fc5\u987b | \n\u9ed8\u8ba4\u503c | \n\u5907\u6ce8 | \n
|---|---|---|---|---|
| appkey | \nstring | \n\u662f | \nYOUR_APPKEY | \n\u4ed8\u8d39\u540e\u83b7\u53d6\u7684 APPKEY | \n
| keywords | \nstring | \n\u662f | \nYOUR_VALUE | \n\u641c\u7d22\u5173\u952e\u5b57\uff0c\u6a21\u7cca\u5339\u914d\u9ad8\u6821\u540d\u79f0\u3001\u7701\u5e02\u533a\u3001\u9ad8\u6821\u65e7\u79f0\u3001\u5730\u5740\u5b57\u6bb5\uff0c\u53c2\u6570\u503c\u4e3a\u7a7a\u5219\u8fd4\u56de\u6240\u6709\u6570\u636e | \n
| pagesize | \nint | \n\u5426 | \n10 | \n\u6bcf\u9875\u6570\u636e\u91cf\uff0c\u53c2\u6570\u6700\u5927\u503c\u4e3a 100 | \n
| pageindex | \nint | \n\u5426 | \n1 | \n\u9875\u7801\uff0c\u7b2c\u51e0\u9875\u6570\u636e | \n
| keywordstrict | \nstring | \n\u5426 | \nfalse | \n\u63a7\u5236 keyword \u53c2\u6570\u5728\u67e5\u8be2\u65f6\u662f\u5426\u8fdb\u884c\u6a21\u7cca\u67e5\u8be2\uff0ctrue \u4e3a\u7cbe\u786e\u5339\u914d\u9ad8\u6821\u540d\u79f0\uff0c\u9ed8\u8ba4\u503c\u4e3a false \u8fdb\u884c\u6a21\u7cca\u67e5\u8be2 | \n
| collegecategory | \nstring | \n\u5426 | \n\n | \u5b66\u9662\u7c7b\u522b\uff0c\u53c2\u6570\u9ed8\u8ba4\u503c\u4e3a\u7a7a\uff0c\u4e0d\u8fdb\u884c\u7b5b\u9009\u3002\u53ef\u9009\u53c2\u6570\u4e3a\uff1a\u7406\u5de5\u7c7b|\u7efc\u5408\u7c7b|\u5e08\u8303\u7c7b|\u8d22\u7ecf\u7c7b|\u533b\u836f\u7c7b|\u827a\u672f\u7c7b|\u519c\u6797\u7c7b|\u519b\u4e8b\u7c7b|\u653f\u6cd5\u7c7b|\u8bed\u8a00\u7c7b|\u4f53\u80b2\u7c7b|\u6c11\u65cf\u7c7b|\u5176\u5b83 | \n
| \u53c2\u6570\u540d | \n\u53c2\u6570\u7c7b\u578b | \n\u5907\u6ce8 | \n
|---|---|---|
| DataStatus.StatusCode | \nint | \n\u63a5\u53e3\u8fd4\u56de\u72b6\u6001\u7801 | \n
| DataStatus.StatusDescription | \nstring | \n\u63a5\u53e3\u8fd4\u56de\u72b6\u6001\u8bf4\u660e | \n
| DataStatus.ResponseDateTime | \nstring | \n\u63a5\u53e3\u6570\u636e\u8fd4\u56de\u65f6\u95f4 | \n
| DataStatus.DataTotalCount | \nint | \n\u6b64\u6761\u4ef6\u4e0b\u7684\u603b\u6570\u636e\u91cf\uff0c\u4e00\u822c\u7528\u4e8e\u5206\u9875\u8ba1\u7b97 | \n
| Data.SchoolUUID | \nstring | \n\u5495\u5495\u6570\u636e\u5e73\u53f0\u9ad8\u6821\u552f\u4e00 ID \uff0c\u6b64\u552f\u4e00 ID \u53ef\u4e0e \u5386\u5e74\u9ad8\u8003\u9ad8\u6821\u5f55\u53d6\u5206\u6570\u7ebf\u3001\u5386\u5e74\u9ad8\u8003\u4e13\u4e1a\u5f55\u53d6\u5206\u6570\u7ebf \u63a5\u53e3\u4e2d\u7684 SchoolUUID \u8fdb\u884c\u552f\u4e00\u5339\u914d | \n
| Data.CollegeName | \nstring | \n\u5b66\u9662\u540d\u79f0 | \n
| Data.Province | \nstring | \n\u5b66\u9662\u6240\u5728\u7701\u4efd | \n
| Data.City | \nstring | \n\u5b66\u9662\u6240\u5728\u57ce\u5e02 | \n
| Data.District | \nstring | \n\u5b66\u9662\u6240\u5728\u533a\u53bf | \n
| Data.Coordinate | \nstring | \n\u5b66\u9662\u5730\u7406\u5750\u6807\u7ecf\u7eac\u5ea6\uff0c\u683c\u5f0f\u4e3a [\u7ecf\u5ea6,\u7eac\u5ea6]\uff0c\u5730\u7406\u5750\u6807\u7cfb\u4e3a GCJ-02 \u3002\u9700\u8981\u8f6c\u6362\u5750\u6807\u7cfb\u8bf7\u8c03\u7528\u5730\u7406\u5750\u6807\u7cfb\u8f6c\u6362\u63a5\u53e3 | \n
| Data.CollegeType | \nstring | \n\u5b66\u9662\u6027\u8d28\uff0c\u503c\u7684\u679a\u4e3e\u4e3a: \u666e\u901a\u672c\u79d1|\u72ec\u7acb\u5b66\u9662|\u4e13\u79d1\uff08\u9ad8\u804c\uff09|\u9ad8\u804c\u9ad8\u4e13|\u4e2d\u5916\u5408\u4f5c\u529e\u5b66|\u6210\u4eba\u6559\u80b2|HND \u9879\u76ee|\u8fdc\u7a0b\u6559\u80b2\u5b66\u9662|\u5176\u5b83 | \n
| Data.Is985 | \nbool | \n\u662f\u5426\u4e3a 985 \u9662\u6821 | \n
| Data.Is211 | \nbool | \n\u662f\u5426\u4e3a 211 \u9662\u6821 | \n
| Data.IsDualClass | \nbool | \n\u662f\u5426\u4e3a\u53cc\u4e00\u6d41\u9662\u6821 | \n
| Data.CollegeCategory | \nstring | \n\u5b66\u9662\u7c7b\u522b\uff0c\u503c\u7684\u679a\u4e3e\u4e3a: \u7efc\u5408\u7c7b|\u7406\u5de5\u7c7b|\u5e08\u8303\u7c7b|\u8d22\u7ecf\u7c7b|\u533b\u836f\u7c7b|\u827a\u672f\u7c7b|\u519c\u6797\u7c7b|\u519b\u4e8b\u7c7b|\u653f\u6cd5\u7c7b|\u8bed\u8a00\u7c7b|\u4f53\u80b2\u7c7b|\u6c11\u65cf\u7c7b|\u5176\u5b83 | \n
| Data.CollegeTags | \nstring[] | \n\u5b66\u9662\u6807\u7b7e | \n
| Data.EduLevel | \nstring | \n\u5b66\u9662\u5b66\u5236\uff0c\u503c\u7684\u679a\u4e3e\u4e3a: \u666e\u901a\u672c\u79d1|\u672c\u79d1|\u4e13\u79d1\uff08\u9ad8\u804c\uff09|\u4e13\u79d1|\u5176\u5b83 | \n
| Data.CollegeProperty | \nstring | \n\u5b66\u9662\u8d44\u8d28\uff0c\u503c\u7684\u679a\u4e3e\u4e3a: \u516c\u529e|\u6c11\u529e|\u4e2d\u5916\u5408\u4f5c\u529e\u5b66 | \n
| Data.CollegeCode | \nstring | \n\u5b66\u9662\u7f16\u53f7 | \n
| Data.Ranking | \nint | \n\u5168\u56fd\u6392\u540d\uff0c\u63a5\u53e3\u8fd4\u56de\u7684\u6570\u636e\u7ed3\u679c\u9ed8\u8ba4\u6309\u7167\u6b64\u6570\u503c\u8fdb\u884c\u5347\u5e8f\u6392\u5217 | \n
| Data.RankingInCategory | \nstring | \n\u5b66\u9662\u6240\u5728\u7c7b\u522b\u4e0b\u6392\u540d | \n
| Data.WebSite | \nstring | \n\u5b66\u9662\u5b98\u7f51 | \n
| Data.CallNumber | \nstring | \n\u5b66\u9662\u62db\u751f\u7535\u8bdd | \n
| Data.Email | \nstring | \n\u5b66\u9662\u62db\u751f\u90ae\u7bb1 | \n
| Data.Address | \nstring | \n\u5b66\u9662\u5730\u5740 | \n
| Data.CoverImage | \nstring | \n\u5b66\u9662\u6821\u5fbd | \n
| Data.Intro | \nstring | \n\u5b66\u9662\u7b80\u4ecb | \n
| Data.Expenses | \nstring | \n\u5b66\u9662\u6536\u8d39\uff08\u4ec5\u4f9b\u53c2\u8003\uff09 | \n
| Data.OldName | \nstring | \n\u5b66\u9662\u65e7\u79f0 | \n
| Data.ShortName | \nstring | \n\u5b66\u9662\u7b80\u79f0 | \n
| Data.MajorList.MajorTitle | \nstring | \n\u5f00\u8bbe\u4e13\u4e1a\u5927\u7c7b | \n
| Data.MajorList.Majors | \nstring[] | \n\u6b64\u5927\u7c7b\u4e0b\u5f00\u8bbe\u7684\u4e13\u4e1a | \n
| \u72b6\u6001\u7801 | \n\u72b6\u6001\u7801\u89e3\u91ca | \n\u5907\u6ce8 | \n
|---|---|---|
| 200 | \n\u63a5\u53e3\u6b63\u5e38\u54cd\u5e94 | \n\u4e1a\u52a1\u72b6\u6001\u7801\u53c2\u89c1\u4e0b\u65b9 \u63a5\u53e3\u81ea\u5b9a\u4e49\u72b6\u6001\u7801 | \n
| 403 | \n\u8bf7\u6c42\u9891\u7387\u8d85\u9650 | \nCDN \u5c42\u901a\u8fc7 IP \u8bf7\u6c42\u9891\u7387\u667a\u80fd\u5224\u65ad\uff0c\u4e00\u822c\u7684\u9ad8\u9891\u8bf7\u6c42\u4e0d\u4f1a\u89e6\u53d1\u6b64\u72b6\u6001\u7801 | \n
| \u72b6\u6001\u7801 | \n\u72b6\u6001\u7801\u89e3\u91ca | \n\u5907\u6ce8 | \n
|---|---|---|
| 100 | \n\u6b63\u5e38\u8fd4\u56de | \n\u53ef\u901a\u8fc7\u5224\u65ad\u6b64\u72b6\u6001\u7801\u65ad\u8a00\u63a5\u53e3\u6b63\u5e38\u8fd4\u56de | \n
| -1 | \n\u8bf7\u6c42\u5931\u8d25 | \n\u8bf7\u6c42\u5904\u7406\u8bf7\u6c42\u5931\u8d25 | \n
| 501 | \n\u53c2\u6570\u9519\u8bef | \n\u8bf7\u68c0\u67e5\u60a8\u4f20\u9012\u7684\u53c2\u6570\u4e2a\u6570\u4ee5\u53ca\u53c2\u6570\u7c7b\u578b\u662f\u5426\u5339\u914d | \n
| 502 | \n\u8bf7\u6c42\u9891\u7387\u53d7\u9650 | \n\u4e00\u822c\u5efa\u8bae\u6bcf\u79d2\u8bf7\u6c42\u4e0d\u8d85\u8fc7 100 \u6b21 | \n
| 503 | \nAPPKEY \u6743\u9650\u8d85\u9650 /\u8ba2\u5355\u5230\u671f | \n\u8bf7\u81f3\u5f00\u53d1\u8005\u4e2d\u5fc3\u68c0\u67e5\u60a8\u7684 APPKEY \u662f\u5426\u5230\u671f\u6216\u662f\u5426\u6743\u9650\u8d85\u9650 | \n
| 504 | \nAPPKEY \u9519\u8bef | \n\u8bf7\u68c0\u67e5\u4f20\u9012\u7684 APPKEY \u662f\u5426\u4e3a\u5f00\u53d1\u8005\u4e2d\u5fc3\u83b7\u53d6\u5230\u7684\u503c | \n
| 505 | \n\u8bf7\u6c42\u7684\u6b21\u6570\u8d85\u51fa\u63a5\u53e3\u9650\u5236 | \n\u8bf7\u68c0\u67e5\u5bf9\u5e94\u63a5\u53e3\u662f\u5426\u6709\u8bf7\u6c42\u6b21\u6570\u9650\u5236\u4ee5\u53ca\u60a8\u76ee\u524d\u7684\u63a5\u53e3\u8bf7\u6c42\u5269\u4f59\u6b21\u6570 | \n
| 900 | \n\u63a5\u53e3\u5185\u90e8\u54cd\u5e94\u9519\u8bef | \n\u63a5\u53e3\u53ef\u7528\u6027\u4e3a 99.999%\uff0c\u5982\u83b7\u53d6\u5230\u6b64\u72b6\u6001\u7801\u8bf7\u90ae\u4ef6\u8054\u7cfb\u6211\u4eec | \n
\u793a\u4f8b\u4ee3\u7801\u5305\u542b\u7684\u5f00\u53d1\u8bed\u8a00\uff1aC#, Go, Java, jQuery, Node.js, Objective-C, PHP, Python, Ruby, Swift \u7b49\uff0c\u5176\u4ed6\u8bed\u8a00\u8fdb\u884c\u5bf9\u5e94\u7684 RESTful API \u8bf7\u6c42\u5b9e\u73b0\u5373\u53ef\u3002
\n
Q: \u6570\u636e\u8bf7\u6c42\u6709\u7f13\u5b58\u5417\uff1f
\nA: \u6240\u6709\u7684\u6570\u636e\u90fd\u662f\u76f4\u63a5\u8fd4\u56de\u7684\uff0c\u90e8\u5206\u5468\u671f\u6027\u6570\u636e\u5728\u66f4\u65b0\u5468\u671f\u5185\u6570\u636e\u662f\u7f13\u5b58\u7684\u3002
\nQ: \u5982\u4f55\u4fdd\u8bc1\u8bf7\u6c42\u65f6 key \u7684\u5b89\u5168\u6027\uff1f
\nA: \u4e00\u822c\u5efa\u8bae\u5c06\u5bf9\u6211\u4eec API \u7684\u8bf7\u6c42\u653e\u7f6e\u5728\u60a8\u5e94\u7528\u7684\u540e\u7aef\u670d\u52a1\u4e2d\u53d1\u8d77\uff0c\u60a8\u5e94\u7528\u7684\u6240\u6709\u524d\u7aef\u8bf7\u6c42\u90fd\u5e94\u8be5\u6307\u5411\u60a8\u81ea\u5df1\u7684\u540e\u7aef\u670d\u52a1\uff0c\u8fd9\u6837\u7684\u67b6\u6784\u4e5f\u66f4\u52a0\u5730\u7eaf\u7cb9\u4e14\u6613\u7ef4\u62a4\u3002
\nQ: \u63a5\u53e3\u53ef\u4ee5\u7528\u4e8e\u54ea\u4e9b\u5f00\u53d1\u8bed\u8a00\uff1f
\nA: \u53ef\u4ee5\u4f7f\u7528\u4e8e\u6240\u6709\u53ef\u4ee5\u8fdb\u884c\u7f51\u7edc\u8bf7\u6c42\u7684\u5f00\u53d1\u8bed\u8a00\uff0c\u7528\u4e8e\u60a8\u9879\u76ee\u5feb\u901f\u5730\u8fdb\u884c\u6570\u636e\u6784\u5efa\u3002
\nQ: \u63a5\u53e3\u7684\u6027\u80fd\u53ef\u4ee5\u4fdd\u8bc1\u5417\uff1f
\nA: \u63a5\u53e3\u540e\u53f0\u67b6\u6784\u548c\u6211\u4eec\u7ed9\u4f01\u4e1a\u63d0\u4f9b\u7684\u5546\u4e1a\u9879\u76ee\u67b6\u6784\u4e00\u81f4\uff0c\u60a8\u53ef\u4ee5\u901a\u8fc7\u8bbf\u95ee\u6d4b\u8bd5\u63a5\u53e3\u67e5\u770b\u63a5\u53e3\u76f8\u5173\u8fd4\u56de\u6027\u80fd\u4e0e\u4fe1\u606f\u3002
\n\u5495\u5495\u6570\u636e\uff0c\u4e13\u4e1a\u7684\u6570\u636e\u63d0\u4f9b\u5546\uff0c\u63d0\u4f9b\u4e13\u4e1a\u5168\u9762\u7684\u6570\u636e\u63a5\u53e3\u3001\u5546\u4e1a\u6570\u636e\u5206\u6790\uff0c\u8ba9\u6570\u636e\u6210\u4e3a\u60a8\u7684\u751f\u4ea7\u539f\u6599\u3002
\n
\u5495\u5495\u6570\u636e\u57fa\u4e8e\u6211\u4eec\u4e03\u5e74\u6765\u4e3a\u4f01\u4e1a\u5ba2\u6237\u63d0\u4f9b\u7684\u5343\u4ebf\u7ea7\u6570\u636e\u5b58\u50a8\u4e0e\u6027\u80fd\u4f18\u5316\u3001\u76f8\u5173\u6d77\u91cf\u57fa\u7840\u6570\u636e\u652f\u6491\uff0c\u5c06\u5408\u89c4\u7684\u90e8\u5206\u901a\u7528\u6570\u636e\u3001\u901a\u7528\u529f\u80fd\u62bd\u8c61\u6210\u4ea7\u54c1\u7ea7\u6570\u636e API \uff0c\u5927\u5927\u6ee1\u8db3\u4e86\u7528\u6237\u5728\u4ea7\u54c1\u5f00\u53d1\u8fc7\u7a0b\u4e2d\u5bf9\u57fa\u7840\u6570\u636e\u7684\u9700\u6c42\uff0c\u540c\u65f6\u964d\u4f4e\u4e86\u6d77\u91cf\u6570\u636e\u7684\u5b58\u50a8\u4e0e\u8fd0\u7ef4\u6210\u672c\uff0c\u4ee5\u53ca\u590d\u6742\u529f\u80fd\u7684\u6280\u672f\u95e8\u69db\u4e0e\u4eba\u529b\u5f00\u53d1\u6210\u672c\u3002
\n\u9664\u4e86\u6211\u4eec\u5df2\u5f00\u653e\u7684\u5206\u7c7b\u6570\u636e\u4e0e\u529f\u80fd\u63a5\u53e3\u5916\uff0c\u8fd8\u6709\u6d77\u91cf\u6570\u636e\u6b63\u5728\u6574\u7406\u3001\u6e05\u6d17\u3001\u6574\u5408\u3001\u6784\u5efa\u4e2d\uff0c\u540e\u671f\u4f1a\u5f00\u653e\u66f4\u591a\u7684\u6570\u636e\u4e0e\u4e91\u7aef\u529f\u80fd\u63a5\u53e3 API \u4f9b\u7528\u6237\u4f7f\u7528\u3002
\n\u56fd\u9645\u6807\u51c6\u4e66\u53f7 ISBN API \u6570\u636e\u63a5\u53e3
\n\u56fe\u4e66 ISBN \u67e5\u8be2\uff0c\u56fe\u4e66\u57fa\u7840\u4fe1\u606f\uff0c\u6c38\u4e45\u56fe\u4e66\u5c01\u9762\u3002
\n
\u63a5\u53e3\u8be6\u60c5: https://www.gugudata.com/api/details/isbn
\n\u63a5\u53e3\u5730\u5740: https://api.gugudata.com/text/isbn
\n\u8fd4\u56de\u683c\u5f0f: application/json; charset=utf-8
\n\u8bf7\u6c42\u65b9\u5f0f: GET
\n\u8bf7\u6c42\u534f\u8bae: HTTPS
\n\u8bf7\u6c42\u793a\u4f8b: https://api.gugudata.com/text/isbn?appkey=YOUR_APPKEY&isbn=YOUR_VALUE
\n\u6570\u636e\u9884\u89c8: https://www.gugudata.com/preview/isbn
\n\u63a5\u53e3\u6d4b\u8bd5: https://api.gugudata.com/text/isbn/demo
\n| \u53c2\u6570\u540d | \n\u53c2\u6570\u7c7b\u578b | \n\u662f\u5426\u5fc5\u987b | \n\u9ed8\u8ba4\u503c | \n\u5907\u6ce8 | \n
|---|---|---|---|---|
| appkey | \nstring | \n\u662f | \nYOUR_APPKEY | \n\u4ed8\u8d39\u540e\u83b7\u53d6\u7684 APPKEY | \n
| isbn | \nstring | \n\u5426 | \nYOUR_VALUE | \n\u56fe\u4e66 ISBN \uff0c\u5982 9787020002320 | \n
| \u53c2\u6570\u540d | \n\u53c2\u6570\u7c7b\u578b | \n\u5907\u6ce8 | \n
|---|---|---|
| DataStatus.StatusCode | \nint | \n\u63a5\u53e3\u8fd4\u56de\u72b6\u6001\u7801 | \n
| DataStatus.StatusDescription | \nstring | \n\u63a5\u53e3\u8fd4\u56de\u72b6\u6001\u8bf4\u660e | \n
| DataStatus.ResponseDateTime | \nstring | \n\u63a5\u53e3\u6570\u636e\u8fd4\u56de\u65f6\u95f4 | \n
| DataStatus.DataTotalCount | \nint | \n\u6b64\u6761\u4ef6\u4e0b\u7684\u603b\u6570\u636e\u91cf\uff0c\u4e00\u822c\u7528\u4e8e\u5206\u9875\u8ba1\u7b97 | \n
| DataStatus.RequestParameter | \nstring | \n\u8bf7\u6c42\u53c2\u6570\uff0c\u4e00\u822c\u7528\u4e8e\u8c03\u8bd5 | \n
| Data.Title | \nstring | \n\u56fe\u4e66\u540d\u79f0 | \n
| Data.Author | \nstring | \n\u4f5c\u8005 | \n
| Data.Translator | \nstring | \n\u8bd1\u8005\uff0c\u6ca1\u6709\u8bd1\u8005\u65f6\u8fd4\u56de\u7a7a\u5b57\u7b26\u4e32 | \n
| Data.ISBN | \nstring | \nISBN | \n
| Data.Publisher | \nstring | \n\u51fa\u7248\u5546 | \n
| Data.PublisherDateTime | \nstring | \n\u51fa\u7248\u5e74\u6708\uff0c\u683c\u5f0f 2022-3 | \n
| Data.PageNumber | \nstring | \n\u56fe\u4e66\u603b\u9875\u7801 | \n
| Data.Binding | \nstring | \n\u56fe\u4e66\u5305\u88c5\u7c7b\u578b\uff0c\u5982\u5e73\u88c5\u3001\u7cbe\u88c5 | \n
| Data.BriefIntroduction | \nstring | \n\u56fe\u4e66\u7b80\u4ecb | \n
| Data.AuthorIntroduction | \nstring | \n\u4f5c\u8005\u7b80\u4ecb | \n
| Data.CoverImage | \nstring | \n\u56fe\u4e66\u5c01\u9762\u56fe\u7247\u6c38\u4e45\u5730\u5740 | \n
| \u72b6\u6001\u7801 | \n\u72b6\u6001\u7801\u89e3\u91ca | \n\u5907\u6ce8 | \n
|---|---|---|
| 100 | \n\u6b63\u5e38\u8fd4\u56de | \n\u53ef\u901a\u8fc7\u5224\u65ad\u6b64\u72b6\u6001\u7801\u65ad\u8a00\u63a5\u53e3\u6b63\u5e38\u8fd4\u56de | \n
| -1 | \n\u8bf7\u6c42\u5931\u8d25 | \n\u8bf7\u6c42\u5904\u7406\u8bf7\u6c42\u5931\u8d25 | \n
| 501 | \n\u53c2\u6570\u9519\u8bef | \n\u8bf7\u68c0\u67e5\u60a8\u4f20\u9012\u7684\u53c2\u6570\u4e2a\u6570\u4ee5\u53ca\u53c2\u6570\u7c7b\u578b\u662f\u5426\u5339\u914d | \n
| 502 | \n\u8bf7\u6c42\u9891\u7387\u53d7\u9650 | \n\u4e00\u822c\u5efa\u8bae\u6bcf\u79d2\u8bf7\u6c42\u4e0d\u8d85\u8fc7 100 \u6b21 | \n
| 503 | \nAPPKEY \u6743\u9650\u8d85\u9650 /\u8ba2\u5355\u5230\u671f | \n\u8bf7\u81f3\u5f00\u53d1\u8005\u4e2d\u5fc3\u68c0\u67e5\u60a8\u7684 APPKEY \u662f\u5426\u5230\u671f\u6216\u662f\u5426\u6743\u9650\u8d85\u9650 | \n
| 504 | \nAPPKEY \u9519\u8bef | \n\u8bf7\u68c0\u67e5\u4f20\u9012\u7684 APPKEY \u662f\u5426\u4e3a\u5f00\u53d1\u8005\u4e2d\u5fc3\u83b7\u53d6\u5230\u7684\u503c | \n
| 505 | \n\u8bf7\u6c42\u7684\u6b21\u6570\u8d85\u51fa\u63a5\u53e3\u9650\u5236 | \n\u8bf7\u68c0\u67e5\u5bf9\u5e94\u63a5\u53e3\u662f\u5426\u6709\u8bf7\u6c42\u6b21\u6570\u9650\u5236\u4ee5\u53ca\u60a8\u76ee\u524d\u7684\u63a5\u53e3\u8bf7\u6c42\u5269\u4f59\u6b21\u6570 | \n
| 900 | \n\u63a5\u53e3\u5185\u90e8\u54cd\u5e94\u9519\u8bef | \n\u63a5\u53e3\u53ef\u7528\u6027\u4e3a 99.999%\uff0c\u5982\u83b7\u53d6\u5230\u6b64\u72b6\u6001\u7801\u8bf7\u90ae\u4ef6\u8054\u7cfb\u6211\u4eec | \n
\u793a\u4f8b\u4ee3\u7801\u5305\u542b\u7684\u5f00\u53d1\u8bed\u8a00\uff1aC#, Go, Java, jQuery, Node.js, Objective-C, PHP, Python, Ruby, Swift \u7b49\uff0c\u5176\u4ed6\u8bed\u8a00\u8fdb\u884c\u5bf9\u5e94\u7684 RESTful API \u8bf7\u6c42\u5b9e\u73b0\u5373\u53ef\u3002
\n
Q: \u6570\u636e\u8bf7\u6c42\u6709\u7f13\u5b58\u5417\uff1f
\nA: \u6240\u6709\u7684\u6570\u636e\u90fd\u662f\u76f4\u63a5\u8fd4\u56de\u7684\uff0c\u90e8\u5206\u5468\u671f\u6027\u6570\u636e\u5728\u66f4\u65b0\u5468\u671f\u5185\u6570\u636e\u662f\u7f13\u5b58\u7684\u3002
\nQ: \u5982\u4f55\u4fdd\u8bc1\u8bf7\u6c42\u65f6 key \u7684\u5b89\u5168\u6027\uff1f
\nA: \u4e00\u822c\u5efa\u8bae\u5c06\u5bf9\u6211\u4eec API \u7684\u8bf7\u6c42\u653e\u7f6e\u5728\u60a8\u5e94\u7528\u7684\u540e\u7aef\u670d\u52a1\u4e2d\u53d1\u8d77\uff0c\u60a8\u5e94\u7528\u7684\u6240\u6709\u524d\u7aef\u8bf7\u6c42\u90fd\u5e94\u8be5\u6307\u5411\u60a8\u81ea\u5df1\u7684\u540e\u7aef\u670d\u52a1\uff0c\u8fd9\u6837\u7684\u67b6\u6784\u4e5f\u66f4\u52a0\u5730\u7eaf\u7cb9\u4e14\u6613\u7ef4\u62a4\u3002
\nQ: \u63a5\u53e3\u53ef\u4ee5\u7528\u4e8e\u54ea\u4e9b\u5f00\u53d1\u8bed\u8a00\uff1f
\nA: \u53ef\u4ee5\u4f7f\u7528\u4e8e\u6240\u6709\u53ef\u4ee5\u8fdb\u884c\u7f51\u7edc\u8bf7\u6c42\u7684\u5f00\u53d1\u8bed\u8a00\uff0c\u7528\u4e8e\u60a8\u9879\u76ee\u5feb\u901f\u5730\u8fdb\u884c\u6570\u636e\u6784\u5efa\u3002
\nQ: \u63a5\u53e3\u7684\u6027\u80fd\u53ef\u4ee5\u4fdd\u8bc1\u5417\uff1f
\nA: \u63a5\u53e3\u540e\u53f0\u67b6\u6784\u548c\u6211\u4eec\u7ed9\u4f01\u4e1a\u63d0\u4f9b\u7684\u5546\u4e1a\u9879\u76ee\u67b6\u6784\u4e00\u81f4\uff0c\u60a8\u53ef\u4ee5\u901a\u8fc7\u8bbf\u95ee\u6d4b\u8bd5\u63a5\u53e3\u67e5\u770b\u63a5\u53e3\u76f8\u5173\u8fd4\u56de\u6027\u80fd\u4e0e\u4fe1\u606f\u3002
\n\u5495\u5495\u6570\u636e\uff0c\u4e13\u4e1a\u7684\u6570\u636e\u63d0\u4f9b\u5546\uff0c\u63d0\u4f9b\u4e13\u4e1a\u5168\u9762\u7684\u6570\u636e\u63a5\u53e3\u3001\u5546\u4e1a\u6570\u636e\u5206\u6790\uff0c\u8ba9\u6570\u636e\u6210\u4e3a\u60a8\u7684\u751f\u4ea7\u539f\u6599\u3002
\n
\u5495\u5495\u6570\u636e\u57fa\u4e8e\u6211\u4eec\u4e03\u5e74\u6765\u4e3a\u4f01\u4e1a\u5ba2\u6237\u63d0\u4f9b\u7684\u5343\u4ebf\u7ea7\u6570\u636e\u5b58\u50a8\u4e0e\u6027\u80fd\u4f18\u5316\u3001\u76f8\u5173\u6d77\u91cf\u57fa\u7840\u6570\u636e\u652f\u6491\uff0c\u5c06\u5408\u89c4\u7684\u90e8\u5206\u901a\u7528\u6570\u636e\u3001\u901a\u7528\u529f\u80fd\u62bd\u8c61\u6210\u4ea7\u54c1\u7ea7\u6570\u636e API \uff0c\u5927\u5927\u6ee1\u8db3\u4e86\u7528\u6237\u5728\u4ea7\u54c1\u5f00\u53d1\u8fc7\u7a0b\u4e2d\u5bf9\u57fa\u7840\u6570\u636e\u7684\u9700\u6c42\uff0c\u540c\u65f6\u964d\u4f4e\u4e86\u6d77\u91cf\u6570\u636e\u7684\u5b58\u50a8\u4e0e\u8fd0\u7ef4\u6210\u672c\uff0c\u4ee5\u53ca\u590d\u6742\u529f\u80fd\u7684\u6280\u672f\u95e8\u69db\u4e0e\u4eba\u529b\u5f00\u53d1\u6210\u672c\u3002
\n\u9664\u4e86\u6211\u4eec\u5df2\u5f00\u653e\u7684\u5206\u7c7b\u6570\u636e\u4e0e\u529f\u80fd\u63a5\u53e3\u5916\uff0c\u8fd8\u6709\u6d77\u91cf\u6570\u636e\u6b63\u5728\u6574\u7406\u3001\u6e05\u6d17\u3001\u6574\u5408\u3001\u6784\u5efa\u4e2d\uff0c\u540e\u671f\u4f1a\u5f00\u653e\u66f4\u591a\u7684\u6570\u636e\u4e0e\u4e91\u7aef\u529f\u80fd\u63a5\u53e3 API \u4f9b\u7528\u6237\u4f7f\u7528\u3002
\n\u6700\u540e\u4e00\u6b65\u4e0d\u505c retry \uff0c\u6700\u540e\u6302\u6389 504
\n" }, { "author": { "url": "member/Parry", "name": "Parry", "avatar": "https://cdn.v2ex.com/avatar/1474/7ce6/35923_large.png?m=1767146301" }, "url": "t/825685", "title": "A \u80a1\u5206\u65f6\u4ea4\u6613\u6570\u636e\u6570\u636e\u63a5\u53e3 API", "id": "t/825685", "date_published": "2022-01-01T11:23:52+00:00", "content_html": "A \u80a1\u5206\u65f6\u4ea4\u6613\u6570\u636e
\n\u5168\u91cf A \u80a1\u5206\u65f6\u4ea4\u6613\u6570\u636e\uff0c\u5206\u949f\u7ea7\u4ea4\u6613\u6570\u636e / \u591a\u65f6\u95f4\u6bb5\u533a\u95f4\u3002
\n
\u63a5\u53e3\u8be6\u60c5: https://www.gugudata.com/api/details/stockcnperminute
\n\u63a5\u53e3\u5730\u5740: https://api.gugudata.com/stock/cn/stockcnperminute
\n\u8fd4\u56de\u683c\u5f0f: application/json; charset=utf-8
\n\u8bf7\u6c42\u65b9\u5f0f: GET
\n\u8bf7\u6c42\u534f\u8bae: HTTPS
\n\u8bf7\u6c42\u793a\u4f8b: https://api.gugudata.com/stock/cn/stockcnperminute?appkey=YOUR_APPKEY\n&symbol=YOUR_VALUE\n&period=5\n&begindate=YOUR_VALUE\n&enddate=YOUR_VALUE\n&adjust=YOUR_VALUE
\n\u6570\u636e\u9884\u89c8: https://www.gugudata.com/preview/stockcnperminute
\n\u63a5\u53e3\u6d4b\u8bd5: https://api.gugudata.com/stock/cn/stockcnperminute/demo
\n| \u53c2\u6570\u540d | \n\u53c2\u6570\u7c7b\u578b | \n\u662f\u5426\u5fc5\u987b | \n\u9ed8\u8ba4\u503c | \n\u5907\u6ce8 | \n
|---|---|---|---|---|
| appkey | \nstring | \n\u662f | \nYOUR_APPKEY | \n\u4ed8\u8d39\u540e\u83b7\u53d6\u7684 APPKEY | \n
| symbol | \nstring | \n\u5426 | \nYOUR_VALUE | \n\u4f20\u9012\u5355\u652f\u80a1\u7968\u4ee3\u7801\uff0c\u5982: 600031 \u3002\u53ef\u901a\u8fc7\u524d\u7f6e\u63a5\u53e3\u6216\u53c2\u89c1 A \u80a1\u80a1\u7968\u4ee3\u7801\u53c2\u6570\u679a\u4e3e\u9875\u9762 | \n
| period | \nint | \n\u5426 | \n5 | \n\u4ea4\u6613\u6570\u636e\u65f6\u95f4\u533a\u95f4\uff0c\u53ef\u9009\u65f6\u95f4\u533a\u95f4\u4ef7\u53c2\u6570\u4e3a: 1|5|15|30|60 (\u5206\u949f)\uff0c \u5176\u4e2d 1 \u5206\u949f\u65f6\u95f4\u533a\u95f4\u4ea4\u6613\u6570\u636e\u4ec5\u8fd4\u56de\u8fd1 5 \u4e2a\u4ea4\u6613\u65e5\u4e0d\u590d\u6743\u6570\u636e | \n
| begindate | \nstring | \n\u5426 | \nYOUR_VALUE | \n\u4ea4\u6613\u5f00\u59cb\u65f6\u95f4\uff0c\u53c2\u6570\u683c\u5f0f\u4e3a: 2021-01-01 09:00:00 | \n
| enddate | \nstring | \n\u5426 | \nYOUR_VALUE | \n\u4ea4\u6613\u7ed3\u675f\u65f6\u95f4\uff0c\u53c2\u6570\u683c\u5f0f\u4e3a: 2021-01-01 09:00:00 \uff0c\u4e0e\u5f00\u59cb\u65f6\u95f4\u6700\u5927\u65f6\u95f4\u8de8\u5ea6\u652f\u6301 366 \u4e2a\u81ea\u7136\u65e5\uff0c\u83b7\u53d6\u5168\u91cf\u6570\u636e\u8bf7\u5206\u6279\u83b7\u53d6\uff0c\u6570\u636e\u91cf\u8f83\u5927\uff0c\u8bf7\u4fdd\u6301\u5408\u7406\u7684\u8bf7\u6c42\u9891\u7387 | \n
| adjust | \nstring | \n\u5426 | \nYOUR_VALUE | \n\u67e5\u8be2\u524d\u590d\u6743\u3001\u540e\u590d\u6743\u6570\u636e\uff0c\u5982\u679c\u4f20\u9012\u53c2\u6570\u503c\u4e3a pre \uff0c\u90a3\u4e48\u8fd4\u56de\u524d\u590d\u6743\u6570\u636e\uff08\u6240\u6709\u6570\u636e\u8fdb\u884c\u4e86\u524d\u590d\u6743\uff09\uff1b\u5982\u679c\u4f20\u9012\u53c2\u6570\u503c\u4e3a after \uff0c\u90a3\u4e48\u8fd4\u56de\u540e\u590d\u6743\u6570\u636e\uff1b\u9ed8\u8ba4\u503c\u4e3a\u7a7a\u6216\u4e0d\u4f20\u9012\uff0c\u8fd4\u56de\u672a\u590d\u6743\u6570\u636e | \n
| \u53c2\u6570\u540d | \n\u53c2\u6570\u7c7b\u578b | \n\u5907\u6ce8 | \n
|---|---|---|
| DataStatus.StatusCode | \nint | \n\u63a5\u53e3\u8fd4\u56de\u72b6\u6001\u7801 | \n
| DataStatus.StatusDescription | \nstring | \n\u63a5\u53e3\u8fd4\u56de\u72b6\u6001\u8bf4\u660e | \n
| DataStatus.ResponseDateTime | \nstring | \n\u63a5\u53e3\u6570\u636e\u8fd4\u56de\u65f6\u95f4 | \n
| DataStatus.DataTotalCount | \nint | \n\u6b64\u6761\u4ef6\u4e0b\u7684\u603b\u6570\u636e\u91cf\uff0c\u4e00\u822c\u7528\u4e8e\u5206\u9875\u8ba1\u7b97 | \n
| Data.Symbol | \nstring | \nA \u80a1\u80a1\u7968\u4ee3\u7801 | \n
| Data.TimeKey | \ndouble | \n\u6700\u65b0\u4ef7\uff0c\u5355\u4f4d\uff1a\u5143 | \n
| Data.Open | \ndouble | \n\u4eca\u65e5\u5f00\u76d8\u4ef7\uff0c\u5355\u4f4d\uff1a\u5143 | \n
| Data.Close | \ndouble | \n\u6628\u6536\u4ef7\uff0c\u5355\u4f4d\uff1a\u5143 | \n
| Data.High | \ndouble | \n\u6700\u9ad8\uff0c\u5355\u4f4d\uff1a\u5143 | \n
| Data.Low | \ndouble | \n\u6700\u4f4e\uff0c\u5355\u4f4d\uff1a\u5143 | \n
| Data.ChangePercent | \ndouble | \n\u6da8\u8dcc\u5e45 \uff0c\u5355\u4f4d\uff1a% | \n
| Data.ChangeAmount | \ndouble | \n\u6da8\u8dcc\u989d \uff0c\u5355\u4f4d\uff1a\u5143 | \n
| Data.TradingVolume | \ndouble | \n\u6210\u4ea4\u91cf\uff0c\u5355\u4f4d\uff1a\u624b | \n
| Data.TradingAmount | \nint | \n\u6210\u4ea4\u989d \uff0c\u5355\u4f4d\uff1a\u5143 | \n
| Data.Swing | \ndouble | \n\u632f\u5e45\uff0c\u5355\u4f4d\uff1a% | \n
| Data.TurnoverRate | \ndouble | \n\u6362\u624b\u7387 \uff0c\u5355\u4f4d\uff1a% | \n
| \u72b6\u6001\u7801 | \n\u72b6\u6001\u7801\u89e3\u91ca | \n\u5907\u6ce8 | \n
|---|---|---|
| 100 | \n\u6b63\u5e38\u8fd4\u56de | \n\u53ef\u901a\u8fc7\u5224\u65ad\u6b64\u72b6\u6001\u7801\u65ad\u8a00\u63a5\u53e3\u6b63\u5e38\u8fd4\u56de | \n
| -1 | \n\u8bf7\u6c42\u5931\u8d25 | \n\u8bf7\u6c42\u5904\u7406\u8bf7\u6c42\u5931\u8d25 | \n
| 501 | \n\u53c2\u6570\u9519\u8bef | \n\u8bf7\u68c0\u67e5\u60a8\u4f20\u9012\u7684\u53c2\u6570\u4e2a\u6570\u4ee5\u53ca\u53c2\u6570\u7c7b\u578b\u662f\u5426\u5339\u914d | \n
| 502 | \n\u8bf7\u6c42\u9891\u7387\u53d7\u9650 | \n\u4e00\u822c\u5efa\u8bae\u6bcf\u79d2\u8bf7\u6c42\u4e0d\u8d85\u8fc7 100 \u6b21 | \n
| 503 | \nAPPKEY \u6743\u9650\u8d85\u9650 /\u8ba2\u5355\u5230\u671f | \n\u8bf7\u81f3\u5f00\u53d1\u8005\u4e2d\u5fc3\u68c0\u67e5\u60a8\u7684 APPKEY \u662f\u5426\u5230\u671f\u6216\u662f\u5426\u6743\u9650\u8d85\u9650 | \n
| 504 | \nAPPKEY \u9519\u8bef | \n\u8bf7\u68c0\u67e5\u4f20\u9012\u7684 APPKEY \u662f\u5426\u4e3a\u5f00\u53d1\u8005\u4e2d\u5fc3\u83b7\u53d6\u5230\u7684\u503c | \n
| 505 | \n\u8bf7\u6c42\u7684\u6b21\u6570\u8d85\u51fa\u63a5\u53e3\u9650\u5236 | \n\u8bf7\u68c0\u67e5\u5bf9\u5e94\u63a5\u53e3\u662f\u5426\u6709\u8bf7\u6c42\u6b21\u6570\u9650\u5236\u4ee5\u53ca\u60a8\u76ee\u524d\u7684\u63a5\u53e3\u8bf7\u6c42\u5269\u4f59\u6b21\u6570 | \n
| 900 | \n\u63a5\u53e3\u5185\u90e8\u54cd\u5e94\u9519\u8bef | \n\u63a5\u53e3\u53ef\u7528\u6027\u4e3a 99.999%\uff0c\u5982\u83b7\u53d6\u5230\u6b64\u72b6\u6001\u7801\u8bf7\u90ae\u4ef6\u8054\u7cfb\u6211\u4eec | \n
\u793a\u4f8b\u4ee3\u7801\u5305\u542b\u7684\u5f00\u53d1\u8bed\u8a00\uff1aC#, Go, Java, jQuery, Node.js, Objective-C, PHP, Python, Ruby, Swift \u7b49\uff0c\u5176\u4ed6\u8bed\u8a00\u8fdb\u884c\u5bf9\u5e94\u7684 RESTful API \u8bf7\u6c42\u5b9e\u73b0\u5373\u53ef\u3002
\n
\u5495\u5495\u6570\u636e\uff0c\u4e13\u4e1a\u7684\u6570\u636e\u63d0\u4f9b\u5546\uff0c\u63d0\u4f9b\u4e13\u4e1a\u5168\u9762\u7684\u6570\u636e\u63a5\u53e3\u3001\u5546\u4e1a\u6570\u636e\u5206\u6790\uff0c\u8ba9\u6570\u636e\u6210\u4e3a\u60a8\u7684\u751f\u4ea7\u539f\u6599\u3002
\n
\u5495\u5495\u6570\u636e\u57fa\u4e8e\u6211\u4eec\u4e94\u5e74\u6765\u4e3a\u4f01\u4e1a\u5ba2\u6237\u63d0\u4f9b\u7684\u6d77\u91cf\u6570\u636e\u652f\u6491\uff0c\u5c06\u90e8\u5206\u901a\u7528\u6570\u636e\u3001\u901a\u7528\u529f\u80fd\u62bd\u8c61\u6210\u4ea7\u54c1\u7ea7 API \uff0c\u5927\u5927\u6ee1\u8db3\u4e86\u7528\u6237\u5728\u4ea7\u54c1\u5f00\u53d1\u8fc7\u7a0b\u4e2d\u5bf9\u57fa\u7840\u6570\u636e\u7684\u9700\u6c42\uff0c\u540c\u65f6\u964d\u4f4e\u4e86\u590d\u6742\u529f\u80fd\u7684\u5b9e\u73b0\u95e8\u69db\u4e0e\u4eba\u529b\u6210\u672c\u3002
\n\u9664\u4e86\u6211\u4eec\u5df2\u5f00\u653e\u7684\u5206\u7c7b\u6570\u636e\u4e0e\u63a5\u53e3\u5916\uff0c\u8fd8\u6709\u6d77\u91cf\u6570\u636e\u6b63\u5728\u6574\u7406\u3001\u6e05\u6d17\u3001\u6574\u5408\u3001\u6784\u5efa\u4e2d\uff0c\u540e\u671f\u4f1a\u5f00\u653e\u66f4\u591a\u7684\u6570\u636e\u4e0e\u4e91\u7aef\u529f\u80fd\u63a5\u53e3\u4f9b\u7528\u6237\u4f7f\u7528\u3002
\nA \u80a1\u5386\u5e74\u4e09\u5927\u8d22\u52a1\u62a5\u8868
\n\u5386\u5e74\u6240\u6709\u8d22\u62a5\u6570\u636e\uff0c\u5168\u91cf A \u80a1\u6570\u636e\uff0c\u6700\u5168\u4e09\u5927\u8d22\u62a5\u6570\u636e\u3002
\n
\u63a5\u53e3\u8be6\u60c5: https://www.gugudata.com/api/details/annualreport
\n\u63a5\u53e3\u5730\u5740: https://api.gugudata.com/stock/cn/annualreport
\n\u8fd4\u56de\u683c\u5f0f: application/json; charset=utf-8
\n\u8bf7\u6c42\u65b9\u5f0f: GET
\n\u8bf7\u6c42\u534f\u8bae: HTTPS
\n\u8bf7\u6c42\u793a\u4f8b: https://api.gugudata.com/stock/cn/annualreport?appkey=YOUR_APPKEY&symbol=YOUR_VALUE&type=
\n\u6570\u636e\u9884\u89c8: https://www.gugudata.com/preview/annualreport
\n\u63a5\u53e3\u6d4b\u8bd5: https://api.gugudata.com/stock/cn/annualreport/demo
\n| \u53c2\u6570\u540d | \n\u53c2\u6570\u7c7b\u578b | \n\u662f\u5426\u5fc5\u987b | \n\u9ed8\u8ba4\u503c | \n\u5907\u6ce8 | \n
|---|---|---|---|---|
| appkey | \nstring | \n\u662f | \nYOUR_APPKEY | \n\u4ed8\u8d39\u540e\u83b7\u53d6\u7684 APPKEY | \n
| symbol | \nstring | \n\u5426 | \nYOUR_VALUE | \n\u4f20\u9012\u5355\u652f\u80a1\u7968\u4ee3\u7801\uff0c\u5982: 600031 \u3002\u53ef\u901a\u8fc7\u524d\u7f6e\u63a5\u53e3\u6216\u53c2\u89c1 A \u80a1\u80a1\u7968\u4ee3\u7801\u53c2\u6570\u679a\u4e3e\u9875\u9762 | \n
| type | \nstring | \n\u662f | \n\n | \u4e09\u5927\u8d22\u62a5\u7c7b\u578b\uff0c\u53ef\u9009\u503c\u4e3a\uff1a\u8d44\u4ea7\u8d1f\u503a\u8868|\u5229\u6da6\u8868|\u73b0\u91d1\u6d41\u91cf\u8868 | \n
| \u53c2\u6570\u540d | \n\u53c2\u6570\u7c7b\u578b | \n\u5907\u6ce8 | \n
|---|---|---|
| DataStatus.StatusCode | \nint | \n\u63a5\u53e3\u8fd4\u56de\u72b6\u6001\u7801 | \n
| DataStatus.StatusDescription | \nstring | \n\u63a5\u53e3\u8fd4\u56de\u72b6\u6001\u8bf4\u660e | \n
| DataStatus.ResponseDateTime | \nstring | \n\u63a5\u53e3\u6570\u636e\u8fd4\u56de\u65f6\u95f4 | \n
| DataStatus.DataTotalCount | \nint | \n\u6b64\u6761\u4ef6\u4e0b\u7684\u603b\u6570\u636e\u91cf\uff0c\u4e00\u822c\u7528\u4e8e\u5206\u9875\u8ba1\u7b97 | \n
| Data.columns | \nstring[] | \n\u8d22\u62a5\u7684\u6570\u636e\u5217\u540d\u79f0\uff0c\u6ce8\u610f\u56e0\u4e3a\u8d22\u62a5\u6570\u636e\u5b57\u6bb5\u975e\u5e38\u591a\u4e14\u4e3a\u4e86\u4fdd\u8bc1\u8868\u8fbe\u7cbe\u51c6\u6027\uff0c\u8fd9\u91cc\u7684\u5b57\u6bb5\u8bf4\u660e\u4ee5\u4e2d\u6587\u8fdb\u884c\u8868\u8fbe\u3002 | \n
| Data.data | \nstring[][] | \n\u5bf9\u5e94\u65f6\u95f4\u70b9\u7684\u5177\u4f53\u8d22\u62a5\u6570\u636e | \n
| Data.data.\u8d44\u4ea7\u8d1f\u503a\u8868 | \nstring[] | \n\u8d44\u4ea7\u8d1f\u503a\u8868.\u62a5\u8868\u65e5\u671f \u8d44\u4ea7\u8d1f\u503a\u8868.\u5355\u4f4d \u8d44\u4ea7\u8d1f\u503a\u8868.\u8d44\u4ea7 \u8d44\u4ea7\u8d1f\u503a\u8868.\u73b0\u91d1\u53ca\u5b58\u653e\u4e2d\u592e\u94f6\u884c\u6b3e\u9879 \u8d44\u4ea7\u8d1f\u503a\u8868.\u5b58\u653e\u540c\u4e1a\u6b3e\u9879 \u8d44\u4ea7\u8d1f\u503a\u8868.\u62c6\u51fa\u8d44\u91d1 \u8d44\u4ea7\u8d1f\u503a\u8868.\u8d35\u91d1\u5c5e \u8d44\u4ea7\u8d1f\u503a\u8868.\u4ea4\u6613\u6027\u91d1\u878d\u8d44\u4ea7 \u8d44\u4ea7\u8d1f\u503a\u8868.\u884d\u751f\u91d1\u878d\u5de5\u5177\u8d44\u4ea7 \u8d44\u4ea7\u8d1f\u503a\u8868.\u4e70\u5165\u8fd4\u552e\u91d1\u878d\u8d44\u4ea7 \u8d44\u4ea7\u8d1f\u503a\u8868.\u5e94\u6536\u5229\u606f \u8d44\u4ea7\u8d1f\u503a\u8868.\u53d1\u653e\u8d37\u6b3e\u53ca\u57ab\u6b3e \u8d44\u4ea7\u8d1f\u503a\u8868.\u4ee3\u7406\u4e1a\u52a1\u8d44\u4ea7 \u8d44\u4ea7\u8d1f\u503a\u8868.\u53ef\u4f9b\u51fa\u552e\u91d1\u878d\u8d44\u4ea7 \u8d44\u4ea7\u8d1f\u503a\u8868.\u6301\u6709\u81f3\u5230\u671f\u6295\u8d44 \u8d44\u4ea7\u8d1f\u503a\u8868.\u957f\u671f\u80a1\u6743\u6295\u8d44 \u8d44\u4ea7\u8d1f\u503a\u8868.\u5e94\u6536\u6295\u8d44\u6b3e\u9879 \u8d44\u4ea7\u8d1f\u503a\u8868.\u56fa\u5b9a\u8d44\u4ea7\u5408\u8ba1 \u8d44\u4ea7\u8d1f\u503a\u8868.\u65e0\u5f62\u8d44\u4ea7 \u8d44\u4ea7\u8d1f\u503a\u8868.\u5546\u8a89 \u8d44\u4ea7\u8d1f\u503a\u8868.\u9012\u5ef6\u7a0e\u6b3e\u501f\u9879 \u8d44\u4ea7\u8d1f\u503a\u8868.\u6295\u8d44\u6027\u623f\u5730\u4ea7 \u8d44\u4ea7\u8d1f\u503a\u8868.\u5176\u4ed6\u8d44\u4ea7 \u8d44\u4ea7\u8d1f\u503a\u8868.\u8d44\u4ea7\u603b\u8ba1 \u8d44\u4ea7\u8d1f\u503a\u8868.\u8d1f\u503a \u8d44\u4ea7\u8d1f\u503a\u8868.\u5411\u4e2d\u592e\u94f6\u884c\u501f\u6b3e \u8d44\u4ea7\u8d1f\u503a\u8868.\u540c\u4e1a\u5b58\u5165\u53ca\u62c6\u5165 \u8d44\u4ea7\u8d1f\u503a\u8868.\u5176\u4e2d:\u540c\u4e1a\u5b58\u653e\u6b3e\u9879 \u8d44\u4ea7\u8d1f\u503a\u8868.\u62c6\u5165\u8d44\u91d1 \u8d44\u4ea7\u8d1f\u503a\u8868.\u884d\u751f\u91d1\u878d\u5de5\u5177\u8d1f\u503a \u8d44\u4ea7\u8d1f\u503a\u8868.\u4ea4\u6613\u6027\u91d1\u878d\u8d1f\u503a \u8d44\u4ea7\u8d1f\u503a\u8868.\u5356\u51fa\u56de\u8d2d\u91d1\u878d\u8d44\u4ea7\u6b3e \u8d44\u4ea7\u8d1f\u503a\u8868.\u5ba2\u6237\u5b58\u6b3e(\u5438\u6536\u5b58\u6b3e) \u8d44\u4ea7\u8d1f\u503a\u8868.\u5e94\u4ed8\u804c\u5de5\u85aa\u916c \u8d44\u4ea7\u8d1f\u503a\u8868.\u5e94\u4ea4\u7a0e\u8d39 \u8d44\u4ea7\u8d1f\u503a\u8868.\u5e94\u4ed8\u5229\u606f \u8d44\u4ea7\u8d1f\u503a\u8868.\u5e94\u4ed8\u8d26\u6b3e \u8d44\u4ea7\u8d1f\u503a\u8868.\u4ee3\u7406\u4e1a\u52a1\u8d1f\u503a \u8d44\u4ea7\u8d1f\u503a\u8868.\u5e94\u4ed8\u503a\u5238 \u8d44\u4ea7\u8d1f\u503a\u8868.\u9012\u5ef6\u6240\u5f97\u7a0e\u8d1f\u503a \u8d44\u4ea7\u8d1f\u503a\u8868.\u9884\u8ba1\u8d1f\u503a \u8d44\u4ea7\u8d1f\u503a\u8868.\u5176\u4ed6\u8d1f\u503a \u8d44\u4ea7\u8d1f\u503a\u8868.\u8d1f\u503a\u5408\u8ba1 \u8d44\u4ea7\u8d1f\u503a\u8868.\u6240\u6709\u8005\u6743\u76ca \u8d44\u4ea7\u8d1f\u503a\u8868.\u80a1\u672c \u8d44\u4ea7\u8d1f\u503a\u8868.\u5176\u4ed6\u6743\u76ca\u5de5\u5177 \u8d44\u4ea7\u8d1f\u503a\u8868.\u5176\u4e2d\uff1a\u4f18\u5148\u80a1 \u8d44\u4ea7\u8d1f\u503a\u8868.\u8d44\u672c\u516c\u79ef \u8d44\u4ea7\u8d1f\u503a\u8868.\u51cf:\u5e93\u85cf\u80a1 \u8d44\u4ea7\u8d1f\u503a\u8868.\u5176\u4ed6\u7efc\u5408\u6536\u76ca \u8d44\u4ea7\u8d1f\u503a\u8868.\u76c8\u4f59\u516c\u79ef \u8d44\u4ea7\u8d1f\u503a\u8868.\u672a\u5206\u914d\u5229\u6da6 \u8d44\u4ea7\u8d1f\u503a\u8868.\u4e00\u822c\u98ce\u9669\u51c6\u5907 \u8d44\u4ea7\u8d1f\u503a\u8868.\u5916\u5e01\u62a5\u8868\u6298\u7b97\u5dee\u989d \u8d44\u4ea7\u8d1f\u503a\u8868.\u5176\u4ed6\u50a8\u5907 \u8d44\u4ea7\u8d1f\u503a\u8868.\u5f52\u5c5e\u4e8e\u6bcd\u516c\u53f8\u80a1\u4e1c\u7684\u6743\u76ca \u8d44\u4ea7\u8d1f\u503a\u8868.\u5c11\u6570\u80a1\u4e1c\u6743\u76ca \u8d44\u4ea7\u8d1f\u503a\u8868.\u80a1\u4e1c\u6743\u76ca\u5408\u8ba1 \u8d44\u4ea7\u8d1f\u503a\u8868.\u8d1f\u503a\u53ca\u80a1\u4e1c\u6743\u76ca\u603b\u8ba1 | \n
| Data.data.\u5229\u6da6\u8868 | \nstring[] | \n\u5229\u6da6\u8868.\u62a5\u8868\u65e5\u671f \u5229\u6da6\u8868.\u5355\u4f4d \u5229\u6da6\u8868.\u4e00\u3001\u8425\u4e1a\u6536\u5165 \u5229\u6da6\u8868.\u5229\u606f\u51c0\u6536\u5165 \u5229\u6da6\u8868.\u5176\u4e2d\uff1a\u5229\u606f\u6536\u5165 \u5229\u6da6\u8868.\u51cf\uff1a\u5229\u606f\u652f\u51fa \u5229\u6da6\u8868.\u624b\u7eed\u8d39\u53ca\u4f63\u91d1\u51c0\u6536\u5165 \u5229\u6da6\u8868.\u5176\u4e2d:\u624b\u7eed\u8d39\u53ca\u4f63\u91d1\u6536\u5165 \u5229\u6da6\u8868.\u51cf\uff1a\u624b\u7eed\u8d39\u53ca\u4f63\u91d1\u652f\u51fa \u5229\u6da6\u8868.\u6c47\u5151\u6536\u76ca \u5229\u6da6\u8868.\u6295\u8d44\u51c0\u6536\u76ca \u5229\u6da6\u8868.\u5176\u4e2d:\u5bf9\u8054\u8425\u516c\u53f8\u7684\u6295\u8d44\u6536\u76ca \u5229\u6da6\u8868.\u516c\u5141\u4ef7\u503c\u53d8\u52a8\u51c0\u6536\u76ca \u5229\u6da6\u8868.\u5176\u4ed6\u4e1a\u52a1\u6536\u5165 \u5229\u6da6\u8868.\u4e8c\u3001\u8425\u4e1a\u652f\u51fa \u5229\u6da6\u8868.\u8425\u4e1a\u7a0e\u91d1\u53ca\u9644\u52a0 \u5229\u6da6\u8868.\u4e1a\u52a1\u53ca\u7ba1\u7406\u8d39\u7528 \u5229\u6da6\u8868.\u7814\u53d1\u8d39\u7528 \u5229\u6da6\u8868.\u8d44\u4ea7\u51cf\u503c\u635f\u5931 \u5229\u6da6\u8868.\u5176\u4ed6\u4e1a\u52a1\u652f\u51fa \u5229\u6da6\u8868.\u4e09\u3001\u8425\u4e1a\u5229\u6da6 \u5229\u6da6\u8868.\u52a0:\u8425\u4e1a\u5916\u6536\u5165 \u5229\u6da6\u8868.\u51cf:\u8425\u4e1a\u5916\u652f\u51fa \u5229\u6da6\u8868.\u56db\u3001\u5229\u6da6\u603b\u989d \u5229\u6da6\u8868.\u51cf:\u6240\u5f97\u7a0e \u5229\u6da6\u8868.\u4e94\u3001\u51c0\u5229\u6da6 \u5229\u6da6\u8868.\u5f52\u5c5e\u4e8e\u6bcd\u516c\u53f8\u7684\u51c0\u5229\u6da6 \u5229\u6da6\u8868.\u5c11\u6570\u80a1\u4e1c\u6743\u76ca \u5229\u6da6\u8868.\u516d\u3001\u6bcf\u80a1\u6536\u76ca \u5229\u6da6\u8868.\u57fa\u672c\u6bcf\u80a1\u6536\u76ca(\u5143 /\u80a1) \u5229\u6da6\u8868.\u7a00\u91ca\u6bcf\u80a1\u6536\u76ca(\u5143 /\u80a1) \u5229\u6da6\u8868.\u4e03\u3001\u5176\u4ed6\u7efc\u5408\u6536\u76ca \u5229\u6da6\u8868.\u516b\u3001\u7efc\u5408\u6536\u76ca\u603b\u989d \u5229\u6da6\u8868.\u5f52\u5c5e\u4e8e\u6bcd\u516c\u53f8\u6240\u6709\u8005\u7684\u7efc\u5408\u6536\u76ca\u603b\u989d \u5229\u6da6\u8868.\u5f52\u5c5e\u4e8e\u5c11\u6570\u80a1\u4e1c\u7684\u7efc\u5408\u6536\u76ca\u603b\u989d | \n
| Data.data.\u73b0\u91d1\u6d41\u91cf\u8868 | \nstring[] | \n\u73b0\u91d1\u6d41\u91cf\u8868.\u62a5\u8868\u65e5\u671f \u73b0\u91d1\u6d41\u91cf\u8868.\u5355\u4f4d \u73b0\u91d1\u6d41\u91cf\u8868.\u4e00\u3001\u7ecf\u8425\u6d3b\u52a8\u4ea7\u751f\u7684\u73b0\u91d1\u6d41\u91cf \u73b0\u91d1\u6d41\u91cf\u8868.\u5ba2\u6237\u5b58\u6b3e\u548c\u540c\u4e1a\u5b58\u653e\u6b3e\u9879\u51c0\u589e\u52a0\u989d \u73b0\u91d1\u6d41\u91cf\u8868.\u5411\u592e\u884c\u501f\u6b3e\u51c0\u589e\u52a0\u989d \u73b0\u91d1\u6d41\u91cf\u8868.\u5411\u5176\u4ed6\u91d1\u878d\u673a\u6784\u62c6\u5165\u8d44\u91d1\u51c0\u589e\u52a0\u989d \u73b0\u91d1\u6d41\u91cf\u8868.\u6536\u53d6\u5229\u606f\u3001\u624b\u7eed\u8d39\u53ca\u4f63\u91d1\u7684\u73b0\u91d1 \u73b0\u91d1\u6d41\u91cf\u8868.\u6536\u5230\u5176\u4ed6\u4e0e\u7ecf\u8425\u6d3b\u52a8\u6709\u5173\u7684\u73b0\u91d1 \u73b0\u91d1\u6d41\u91cf\u8868.\u7ecf\u8425\u6d3b\u52a8\u73b0\u91d1\u6d41\u5165\u5c0f\u8ba1 \u73b0\u91d1\u6d41\u91cf\u8868.\u5ba2\u6237\u8d37\u6b3e\u53ca\u57ab\u6b3e\u51c0\u589e\u52a0\u989d \u73b0\u91d1\u6d41\u91cf\u8868.\u5b58\u653e\u4e2d\u592e\u94f6\u884c\u548c\u540c\u4e1a\u6b3e\u9879\u51c0\u589e\u52a0\u989d \u73b0\u91d1\u6d41\u91cf\u8868.\u652f\u4ed8\u7ed9\u804c\u5de5\u4ee5\u53ca\u4e3a\u804c\u5de5\u652f\u4ed8\u7684\u73b0\u91d1 \u73b0\u91d1\u6d41\u91cf\u8868.\u652f\u4ed8\u7684\u5404\u9879\u7a0e\u8d39 \u73b0\u91d1\u6d41\u91cf\u8868.\u652f\u4ed8\u5176\u4ed6\u4e0e\u7ecf\u8425\u6d3b\u52a8\u6709\u5173\u7684\u73b0\u91d1 \u73b0\u91d1\u6d41\u91cf\u8868.\u652f\u4ed8\u5229\u606f\u3001\u624b\u7eed\u8d39\u53ca\u4f63\u91d1\u7684\u73b0\u91d1 \u73b0\u91d1\u6d41\u91cf\u8868.\u7ecf\u8425\u6d3b\u52a8\u73b0\u91d1\u6d41\u51fa\u5c0f\u8ba1 \u73b0\u91d1\u6d41\u91cf\u8868.\u7ecf\u8425\u6d3b\u52a8\u4ea7\u751f\u7684\u73b0\u91d1\u6d41\u91cf\u51c0\u989d \u73b0\u91d1\u6d41\u91cf\u8868.\u4e8c\u3001\u6295\u8d44\u6d3b\u52a8\u4ea7\u751f\u7684\u73b0\u91d1\u6d41\u91cf \u73b0\u91d1\u6d41\u91cf\u8868.\u6536\u56de\u6295\u8d44\u6536\u5230\u7684\u73b0\u91d1 \u73b0\u91d1\u6d41\u91cf\u8868.\u53d6\u5f97\u6295\u8d44\u6536\u76ca\u6536\u5230\u7684\u73b0\u91d1 \u73b0\u91d1\u6d41\u91cf\u8868.\u5904\u7f6e\u56fa\u5b9a\u8d44\u4ea7\u3001\u65e0\u5f62\u8d44\u4ea7\u53ca\u5176\u4ed6\u8d44\u4ea7\u800c\u6536\u5230\u7684\u73b0\u91d1 \u73b0\u91d1\u6d41\u91cf\u8868.\u53d6\u5f97\u5b50\u516c\u53f8\u53ca\u5176\u4ed6\u8425\u4e1a\u5355\u4f4d\u6240\u6536\u5230\u7684\u73b0\u91d1\u51c0\u989d \u73b0\u91d1\u6d41\u91cf\u8868.\u6536\u5230\u5176\u4ed6\u4e0e\u6295\u8d44\u6d3b\u52a8\u6709\u5173\u7684\u73b0\u91d1 \u73b0\u91d1\u6d41\u91cf\u8868.\u6295\u8d44\u6d3b\u52a8\u73b0\u91d1\u6d41\u5165\u5c0f\u8ba1 \u73b0\u91d1\u6d41\u91cf\u8868.\u6295\u8d44\u652f\u4ed8\u7684\u73b0\u91d1 \u73b0\u91d1\u6d41\u91cf\u8868.\u8d2d\u5efa\u56fa\u5b9a\u8d44\u4ea7\u3001\u65e0\u5f62\u8d44\u4ea7\u548c\u5176\u4ed6\u957f\u671f\u8d44\u4ea7\u652f\u4ed8\u7684\u73b0\u91d1 \u73b0\u91d1\u6d41\u91cf\u8868.\u652f\u4ed8\u7684\u5176\u4ed6\u4e0e\u6295\u8d44\u6d3b\u52a8\u6709\u5173\u7684\u73b0\u91d1 \u73b0\u91d1\u6d41\u91cf\u8868.\u6295\u8d44\u6d3b\u52a8\u73b0\u91d1\u6d41\u51fa\u5c0f\u8ba1 \u73b0\u91d1\u6d41\u91cf\u8868.\u6295\u8d44\u6d3b\u52a8\u4ea7\u751f\u7684\u73b0\u91d1\u6d41\u91cf\u51c0\u989d \u73b0\u91d1\u6d41\u91cf\u8868.\u4e09\u3001\u7b79\u8d44\u6d3b\u52a8\u4ea7\u751f\u7684\u73b0\u91d1\u6d41\u91cf \u73b0\u91d1\u6d41\u91cf\u8868.\u5438\u6536\u6295\u8d44\u6240\u6536\u5230\u7684\u73b0\u91d1 \u73b0\u91d1\u6d41\u91cf\u8868.\u53d1\u884c\u8bc1\u5238\u5316\u8d44\u4ea7\u6240\u5438\u6536\u7684\u73b0\u91d1 \u73b0\u91d1\u6d41\u91cf\u8868.\u53d1\u884c\u503a\u5238\u6536\u5230\u7684\u73b0\u91d1 \u73b0\u91d1\u6d41\u91cf\u8868.\u589e\u52a0\u80a1\u672c\u6240\u6536\u5230\u7684\u73b0\u91d1 \u73b0\u91d1\u6d41\u91cf\u8868.\u6536\u5230\u5176\u4ed6\u4e0e\u7b79\u8d44\u6d3b\u52a8\u6709\u5173\u7684\u73b0\u91d1 \u73b0\u91d1\u6d41\u91cf\u8868.\u7b79\u8d44\u6d3b\u52a8\u73b0\u91d1\u6d41\u5165\u5c0f\u8ba1 \u73b0\u91d1\u6d41\u91cf\u8868.\u507f\u8fd8\u503a\u52a1\u6240\u652f\u4ed8\u7684\u73b0\u91d1 \u73b0\u91d1\u6d41\u91cf\u8868.\u5206\u914d\u80a1\u5229\u3001\u5229\u6da6\u6216\u507f\u4ed8\u5229\u606f\u652f\u4ed8\u7684\u73b0\u91d1 \u73b0\u91d1\u6d41\u91cf\u8868.\u5176\u4e2d:\u507f\u4ed8\u5229\u606f\u6240\u652f\u4ed8\u7684\u73b0\u91d1 \u73b0\u91d1\u6d41\u91cf\u8868.\u652f\u4ed8\u65b0\u80a1\u53d1\u884c\u8d39\u7528 \u73b0\u91d1\u6d41\u91cf\u8868.\u652f\u4ed8\u5176\u4ed6\u4e0e\u7b79\u8d44\u6d3b\u52a8\u6709\u5173\u7684\u73b0\u91d1 \u73b0\u91d1\u6d41\u91cf\u8868.\u7b79\u8d44\u6d3b\u52a8\u73b0\u91d1\u6d41\u51fa\u5c0f\u8ba1 \u73b0\u91d1\u6d41\u91cf\u8868.\u7b79\u8d44\u6d3b\u52a8\u4ea7\u751f\u7684\u73b0\u91d1\u6d41\u91cf\u51c0\u989d \u73b0\u91d1\u6d41\u91cf\u8868.\u56db\u3001\u6c47\u7387\u53d8\u52a8\u5bf9\u73b0\u91d1\u53ca\u73b0\u91d1\u7b49\u4ef7\u7269\u7684\u5f71\u54cd \u73b0\u91d1\u6d41\u91cf\u8868.\u4e94\u3001\u73b0\u91d1\u53ca\u73b0\u91d1\u7b49\u4ef7\u7269\u51c0\u589e\u52a0\u989d \u73b0\u91d1\u6d41\u91cf\u8868.\u52a0:\u671f\u521d\u73b0\u91d1\u53ca\u73b0\u91d1\u7b49\u4ef7\u7269\u4f59\u989d \u73b0\u91d1\u6d41\u91cf\u8868.\u516d\u3001\u671f\u672b\u73b0\u91d1\u53ca\u73b0\u91d1\u7b49\u4ef7\u7269\u4f59\u989d \u73b0\u91d1\u6d41\u91cf\u8868.\u9644\u6ce8 \u73b0\u91d1\u6d41\u91cf\u8868.\u51c0\u5229\u6da6 \u73b0\u91d1\u6d41\u91cf\u8868.\u52a0:\u5c11\u6570\u80a1\u4e1c\u6536\u76ca \u73b0\u91d1\u6d41\u91cf\u8868.\u8ba1\u63d0\u7684\u8d44\u4ea7\u51cf\u503c\u51c6\u5907 \u73b0\u91d1\u6d41\u91cf\u8868.\u5176\u4e2d\uff1a\u8ba1\u63d0\u7684\u574f\u8d26\u51c6\u5907 \u73b0\u91d1\u6d41\u91cf\u8868.\u8ba1\u63d0\u7684\u8d37\u6b3e\u635f\u5931\u51c6\u5907 \u73b0\u91d1\u6d41\u91cf\u8868.\u51b2\u56de\u5b58\u653e\u540c\u4e1a\u51cf\u503c\u51c6\u5907 \u73b0\u91d1\u6d41\u91cf\u8868.\u56fa\u5b9a\u8d44\u4ea7\u6298\u65e7\u3001\u6cb9\u6c14\u8d44\u4ea7\u6298\u8017\u3001\u751f\u4ea7\u6027\u751f\u7269\u8d44\u4ea7\u6298\u65e7 \u73b0\u91d1\u6d41\u91cf\u8868.\u6295\u8d44\u6027\u623f\u5730\u4ea7\u6298\u65e7 \u73b0\u91d1\u6d41\u91cf\u8868.\u65e0\u5f62\u8d44\u4ea7\u3001\u9012\u5ef6\u8d44\u4ea7\u53ca\u5176\u4ed6\u8d44\u4ea7\u7684\u644a\u9500 \u73b0\u91d1\u6d41\u91cf\u8868.\u5176\u4e2d:\u65e0\u5f62\u8d44\u4ea7\u644a\u9500 \u73b0\u91d1\u6d41\u91cf\u8868.\u957f\u671f\u5f85\u644a\u8d39\u7528\u644a\u9500 \u73b0\u91d1\u6d41\u91cf\u8868.\u957f\u671f\u8d44\u4ea7\u644a\u9500 \u73b0\u91d1\u6d41\u91cf\u8868.\u5904\u7f6e\u56fa\u5b9a\u8d44\u4ea7\u3001\u65e0\u5f62\u8d44\u4ea7\u548c\u5176\u4ed6\u957f\u671f\u4ea7\u7684\u635f\u5931 /(\u6536\u76ca) \u73b0\u91d1\u6d41\u91cf\u8868.\u5904\u7f6e\u6295\u8d44\u6027\u623f\u5730\u4ea7\u7684\u635f\u5931 /(\u6536\u76ca) \u73b0\u91d1\u6d41\u91cf\u8868.\u56fa\u5b9a\u8d44\u4ea7\u62a5\u5e9f\u635f\u5931 \u73b0\u91d1\u6d41\u91cf\u8868.\u8d22\u52a1\u8d39\u7528 \u73b0\u91d1\u6d41\u91cf\u8868.\u6295\u8d44\u635f\u5931(\u51cf:\u6536\u76ca) \u73b0\u91d1\u6d41\u91cf\u8868.\u516c\u5141\u4ef7\u503c\u53d8\u52a8(\u6536\u76ca)/\u635f\u5931 \u73b0\u91d1\u6d41\u91cf\u8868.\u6c47\u5151\u635f\u76ca \u73b0\u91d1\u6d41\u91cf\u8868.\u884d\u751f\u91d1\u878d\u5de5\u5177\u4ea4\u6613\u51c0\u635f\u76ca \u73b0\u91d1\u6d41\u91cf\u8868.\u6298\u73b0\u56de\u62d4(\u51cf\u503c\u8d44\u4ea7\u5229\u606f\u51b2\u8f6c) \u73b0\u91d1\u6d41\u91cf\u8868.\u5b58\u8d27\u7684\u51cf\u5c11 \u73b0\u91d1\u6d41\u91cf\u8868.\u8d37\u6b3e\u7684\u51cf\u5c11 \u73b0\u91d1\u6d41\u91cf\u8868.\u5b58\u6b3e\u7684\u589e\u52a0 \u73b0\u91d1\u6d41\u91cf\u8868.\u62c6\u501f\u6b3e\u9879\u7684\u51c0\u589e \u73b0\u91d1\u6d41\u91cf\u8868.\u91d1\u878d\u6027\u8d44\u4ea7\u7684\u51cf\u5c11 \u73b0\u91d1\u6d41\u91cf\u8868.\u9884\u8ba1\u8d1f\u503a\u7684\u589e\u52a0 \u73b0\u91d1\u6d41\u91cf\u8868.\u6536\u5230\u5df2\u6838\u9500\u6b3e\u9879 \u73b0\u91d1\u6d41\u91cf\u8868.\u9012\u5ef6\u6240\u5f97\u7a0e\u8d44\u4ea7\u7684\u51cf\u5c11 \u73b0\u91d1\u6d41\u91cf\u8868.\u9012\u5ef6\u6240\u5f97\u7a0e\u8d1f\u503a\u7684\u589e\u52a0 \u73b0\u91d1\u6d41\u91cf\u8868.\u7ecf\u8425\u6027\u5e94\u6536\u9879\u76ee\u7684\u589e\u52a0 \u73b0\u91d1\u6d41\u91cf\u8868.\u7ecf\u8425\u6027\u5e94\u4ed8\u9879\u76ee\u7684\u589e\u52a0 \u73b0\u91d1\u6d41\u91cf\u8868.\u7ecf\u8425\u6027\u5176\u4ed6\u8d44\u4ea7\u7684\u51cf\u5c11 \u73b0\u91d1\u6d41\u91cf\u8868.\u7ecf\u8425\u6027\u5176\u4ed6\u8d1f\u503a\u7684\u589e\u52a0 \u73b0\u91d1\u6d41\u91cf\u8868.\u5176\u4ed6 \u73b0\u91d1\u6d41\u91cf\u8868.\u7ecf\u8425\u6d3b\u52a8\u73b0\u91d1\u6d41\u91cf\u51c0\u989d \u73b0\u91d1\u6d41\u91cf\u8868.\u4ee5\u56fa\u5b9a\u8d44\u4ea7\u507f\u8fd8\u503a\u52a1 \u73b0\u91d1\u6d41\u91cf\u8868.\u4ee5\u6295\u8d44\u507f\u8fd8\u503a\u52a1 \u73b0\u91d1\u6d41\u91cf\u8868.\u4ee5\u56fa\u5b9a\u8d44\u4ea7\u8fdb\u884c\u6295\u8d44 \u73b0\u91d1\u6d41\u91cf\u8868.\u503a\u52a1\u8f6c\u4e3a\u8d44\u672c \u73b0\u91d1\u6d41\u91cf\u8868.\u4e00\u5e74\u5185\u5230\u671f\u7684\u53ef\u8f6c\u6362\u516c\u53f8\u503a\u5238 \u73b0\u91d1\u6d41\u91cf\u8868.\u878d\u8d44\u79df\u5165\u56fa\u5b9a\u8d44\u4ea7 \u73b0\u91d1\u6d41\u91cf\u8868.\u5176\u4ed6\u4e0d\u6d89\u53ca\u73b0\u91d1\u6536\u652f\u7684\u6295\u8d44\u548c\u7b79\u8d44\u6d3b\u52a8\u91d1\u989d \u73b0\u91d1\u6d41\u91cf\u8868.\u73b0\u91d1\u7684\u671f\u672b\u4f59\u989d \u73b0\u91d1\u6d41\u91cf\u8868.\u51cf:\u73b0\u91d1\u7684\u671f\u521d\u4f59\u989d \u73b0\u91d1\u6d41\u91cf\u8868.\u73b0\u91d1\u7b49\u4ef7\u7269\u7684\u671f\u672b\u4f59\u989d \u73b0\u91d1\u6d41\u91cf\u8868.\u51cf\uff1a\u73b0\u91d1\u7b49\u4ef7\u7269\u7684\u671f\u521d\u4f59\u989d \u73b0\u91d1\u6d41\u91cf\u8868.\u73b0\u91d1\u53ca\u73b0\u91d1\u7b49\u4ef7\u7269\u51c0\u589e\u52a0\u989d | \n
| \u72b6\u6001\u7801 | \n\u72b6\u6001\u7801\u89e3\u91ca | \n\u5907\u6ce8 | \n
|---|---|---|
| 100 | \n\u6b63\u5e38\u8fd4\u56de | \n\u53ef\u901a\u8fc7\u5224\u65ad\u6b64\u72b6\u6001\u7801\u65ad\u8a00\u63a5\u53e3\u6b63\u5e38\u8fd4\u56de | \n
| -1 | \n\u8bf7\u6c42\u5931\u8d25 | \n\u8bf7\u6c42\u5904\u7406\u8bf7\u6c42\u5931\u8d25 | \n
| 501 | \n\u53c2\u6570\u9519\u8bef | \n\u8bf7\u68c0\u67e5\u60a8\u4f20\u9012\u7684\u53c2\u6570\u4e2a\u6570\u4ee5\u53ca\u53c2\u6570\u7c7b\u578b\u662f\u5426\u5339\u914d | \n
| 502 | \n\u8bf7\u6c42\u9891\u7387\u53d7\u9650 | \n\u4e00\u822c\u5efa\u8bae\u6bcf\u79d2\u8bf7\u6c42\u4e0d\u8d85\u8fc7 100 \u6b21 | \n
| 503 | \nAPPKEY \u6743\u9650\u8d85\u9650 /\u8ba2\u5355\u5230\u671f | \n\u8bf7\u81f3\u5f00\u53d1\u8005\u4e2d\u5fc3\u68c0\u67e5\u60a8\u7684 APPKEY \u662f\u5426\u5230\u671f\u6216\u662f\u5426\u6743\u9650\u8d85\u9650 | \n
| 504 | \nAPPKEY \u9519\u8bef | \n\u8bf7\u68c0\u67e5\u4f20\u9012\u7684 APPKEY \u662f\u5426\u4e3a\u5f00\u53d1\u8005\u4e2d\u5fc3\u83b7\u53d6\u5230\u7684\u503c | \n
| 505 | \n\u8bf7\u6c42\u7684\u6b21\u6570\u8d85\u51fa\u63a5\u53e3\u9650\u5236 | \n\u8bf7\u68c0\u67e5\u5bf9\u5e94\u63a5\u53e3\u662f\u5426\u6709\u8bf7\u6c42\u6b21\u6570\u9650\u5236\u4ee5\u53ca\u60a8\u76ee\u524d\u7684\u63a5\u53e3\u8bf7\u6c42\u5269\u4f59\u6b21\u6570 | \n
| 900 | \n\u63a5\u53e3\u5185\u90e8\u54cd\u5e94\u9519\u8bef | \n\u63a5\u53e3\u53ef\u7528\u6027\u4e3a 99.999%\uff0c\u5982\u83b7\u53d6\u5230\u6b64\u72b6\u6001\u7801\u8bf7\u90ae\u4ef6\u8054\u7cfb\u6211\u4eec | \n
\u793a\u4f8b\u4ee3\u7801\u5305\u542b\u7684\u5f00\u53d1\u8bed\u8a00\uff1aC#, Go, Java, jQuery, Node.js, Objective-C, PHP, Python, Ruby, Swift \u7b49\uff0c\u5176\u4ed6\u8bed\u8a00\u8fdb\u884c\u5bf9\u5e94\u7684 RESTful API \u8bf7\u6c42\u5b9e\u73b0\u5373\u53ef\u3002
\n
\u5495\u5495\u6570\u636e\uff0c\u4e13\u4e1a\u7684\u6570\u636e\u63d0\u4f9b\u5546\uff0c\u63d0\u4f9b\u4e13\u4e1a\u5168\u9762\u7684\u6570\u636e\u63a5\u53e3\u3001\u5546\u4e1a\u6570\u636e\u5206\u6790\uff0c\u8ba9\u6570\u636e\u6210\u4e3a\u60a8\u7684\u751f\u4ea7\u539f\u6599\u3002
\n
\u5495\u5495\u6570\u636e\u57fa\u4e8e\u6211\u4eec\u4e03\u5e74\u6765\u4e3a\u4f01\u4e1a\u5ba2\u6237\u63d0\u4f9b\u7684\u6d77\u91cf\u6570\u636e\u652f\u6491\uff0c\u5c06\u90e8\u5206\u901a\u7528\u6570\u636e\u3001\u901a\u7528\u529f\u80fd\u62bd\u8c61\u6210\u4ea7\u54c1\u7ea7 API \uff0c\u5927\u5927\u6ee1\u8db3\u4e86\u7528\u6237\u5728\u4ea7\u54c1\u5f00\u53d1\u8fc7\u7a0b\u4e2d\u5bf9\u57fa\u7840\u6570\u636e\u7684\u9700\u6c42\uff0c\u540c\u65f6\u964d\u4f4e\u4e86\u590d\u6742\u529f\u80fd\u7684\u5b9e\u73b0\u95e8\u69db\u4e0e\u4eba\u529b\u6210\u672c\u3002
\n\u9664\u4e86\u6211\u4eec\u5df2\u5f00\u653e\u7684\u5206\u7c7b\u6570\u636e\u4e0e\u63a5\u53e3\u5916\uff0c\u8fd8\u6709\u6d77\u91cf\u6570\u636e\u6b63\u5728\u6574\u7406\u3001\u6e05\u6d17\u3001\u6574\u5408\u3001\u6784\u5efa\u4e2d\uff0c\u540e\u671f\u4f1a\u5f00\u653e\u66f4\u591a\u7684\u6570\u636e\u4e0e\u4e91\u7aef\u529f\u80fd\u63a5\u53e3\u4f9b\u7528\u6237\u4f7f\u7528\u3002
\n