{"id":47990,"date":"2024-01-03T11:26:53","date_gmt":"2022-12-03T05:29:56","guid":{"rendered":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e6%95%b4%e7%90%86%e4%ba%86%e4%bd%bf%e7%94%a8aws-amplify%e5%b0%86%e8%b5%84%e6%ba%90%ef%bc%88api%ef%bc%8cauth%ef%bc%89%e6%9e%84%e5%bb%ba%e5%92%8c%e5%af%bc%e5%85%a5%e5%88%b0%e5%89%8d%e7%ab%af\/"},"modified":"2024-05-04T16:38:45","modified_gmt":"2024-05-04T08:38:45","slug":"%e6%88%91%e6%95%b4%e7%90%86%e4%ba%86%e4%bd%bf%e7%94%a8aws-amplify%e5%b0%86%e8%b5%84%e6%ba%90%ef%bc%88api%ef%bc%8cauth%ef%bc%89%e6%9e%84%e5%bb%ba%e5%92%8c%e5%af%bc%e5%85%a5%e5%88%b0%e5%89%8d%e7%ab%af","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e6%95%b4%e7%90%86%e4%ba%86%e4%bd%bf%e7%94%a8aws-amplify%e5%b0%86%e8%b5%84%e6%ba%90%ef%bc%88api%ef%bc%8cauth%ef%bc%89%e6%9e%84%e5%bb%ba%e5%92%8c%e5%af%bc%e5%85%a5%e5%88%b0%e5%89%8d%e7%ab%af\/","title":{"rendered":"\u6211\u6574\u7406\u4e86\u4f7f\u7528AWS Amplify\u5c06\u8d44\u6e90\uff08API\uff0cAuth\uff09\u6784\u5efa\u548c\u5bfc\u5165\u5230\u524d\u7aef\uff08React\uff09\u7684\u6b65\u9aa4"},"content":{"rendered":"<h1>\u9996\u5148<\/h1>\n<p>\u6211\u542c\u8bf4\u4f7f\u7528 AWS Amplify \u53ef\u4ee5\u8f7b\u677e\u521b\u5efa\u65e0\u670d\u52a1\u5668\u7684\u540e\u7aef\u3002\u6211\u4e00\u76f4\u60f3\u5c1d\u8bd5\u4e2a\u4eba\u5e94\u7528\u5f00\u53d1\uff0c\u4f46\u662f\u7531\u4e8e\u540e\u7aef\u6784\u5efa\u7684\u9ebb\u70e6\uff0c\u4e00\u76f4\u6ca1\u6709\u4e0b\u624b\u3002\u6240\u4ee5\uff0c\u6211\u51b3\u5b9a\u501f\u6b64\u673a\u4f1a\u5b66\u4e60 Amplify\u3002<br \/>\n\u4e0b\u9762\u662f\u6211\u6784\u5efa API \u548c\u8ba4\u8bc1\u8d44\u6e90\uff0c\u5e76\u5c06\u5176\u5b9e\u65bd\u5230\u524d\u7aef\u7684\u603b\u7ed3\u3002<\/p>\n<h1>AWS Amplify \u662f\u4ec0\u4e48\uff1f<\/h1>\n<p>\u53ea\u9700\u4f7f\u7528CLI\u952e\u5165\u547d\u4ee4\u5373\u53ef\u5728\u4e91\u7aef\u914d\u7f6e\u540e\u7aef\u8d44\u6e90\uff08\u5982S3\u548cAPI Gateway\u7b49AWS\u670d\u52a1\uff09\uff0c\u4ece\u800c\u8f7b\u677e\u6784\u5efa\u65e0\u670d\u52a1\u5668\u540e\u7aef\u7684\u670d\u52a1\u3002\u4f7f\u7528\u6b64\u670d\u52a1\u53ef\u4ee5\u4f7f\u5e94\u7528\u5f00\u53d1\u53d8\u5f97\u6781\u4e3a\u9ad8\u6548\u3002<\/p>\n<p>\u53ef\u4ee5\u901a\u8fc7\u547d\u4ee4\u6765\u521b\u5efa\u7684\u8d44\u6e90\u5305\u62ec\u4ee5\u4e0b\u51e0\u79cd\u7c7b\u578b\uff1a<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Auth: Amazon Cognito(SignIn\/SignUp\u6a5f\u80fd\u3092\u8ffd\u52a0)<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Analytics: Amazon Pinpoint(\u30e6\u30fc\u30b6\u306e\u30bb\u30c3\u30b7\u30e7\u30f3\u3084\u30a4\u30d9\u30f3\u30c8\u3092\u8a18\u9332)<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Storage: Amazon S3<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Caching: Amazon Cloudfront<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">API: API Gateway+Lambda(REST)\u3084AppSync(GraphQL)<\/ul>\n<p>\u5728\u9ed1\u5e26\u7684\u8d44\u6599\u4e2d\u6709\u66f4\u8be6\u7ec6\u7684\u5185\u5bb9\u3002<\/p>\n<h1>\u5f15\u7528CLI Amplify\u7684\u4ecb\u7ecd<\/h1>\n<p>\u53ea\u9700\u70b9\u51e0\u4e0b\u5373\u53ef\u521b\u5efa\u540e\u7aef\u8d44\u6e90\uff0c\u9700\u8981\u4f7f\u7528Amplify CLI\u8fdb\u884c\u5b89\u88c5\u5e76\u4e0e\u81ea\u5df1\u7684AWS\u8d26\u6237\u5173\u8054\u3002\u5177\u4f53\u5b89\u88c5\u6b65\u9aa4\u8bf7\u53c2\u8003\u5b98\u65b9\u6587\u6863\uff0c\u7b80\u5355\u6982\u62ec\u5982\u4e0b\u6240\u793a\u3002<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Amplify CLI\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb(Node.js\u3068npm\u306e\u4e8b\u524d\u5c0e\u5165\u304c\u5fc5\u8981)<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Amplify\u306e\u8a2d\u5b9a\u3067AWS\u30ea\u30bd\u30fc\u30b9\u3092\u4f5c\u6210\u3059\u308b\u305f\u3081\u306eIAM\u30e6\u30fc\u30b6\u3092\u65b0\u898f\u4f5c\u6210<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\u30a2\u30af\u30bb\u30b9\u30ad\u30fcID\u3068\u30b7\u30fc\u30af\u30ec\u30c3\u30c8\u30a2\u30af\u30bb\u30b9\u30ad\u30fc\u3092\u5165\u529b\u3057\u3066Amplify CLI\u3068IAM\u30e6\u30fc\u30b6\u3092\u7d10\u4ed8\u3051<\/ul>\n<h1>\u521b\u5efa\u5e94\u7528\u7a0b\u5f0f<\/h1>\n<p>\u4f7f\u7528Amplify\u6784\u5efa\u540e\u7aef\u8d44\u6e90\u5982GraphQL\u548cAuth\uff0c\u5e76\u5728React\u5e94\u7528\u7a0b\u5e8f\u4e2d\u4f7f\u7528\u5b83\u4eec\u3002\u8bf7\u9996\u5148\u4f7f\u7528npx create-react-app &lt;app\u540d&gt;\u547d\u4ee4\u521b\u5efa\u9879\u76ee\u3002<\/p>\n<h2>\u540e\u7aef\u5efa\u8bbe<\/h2>\n<p>\u9996\u5148\uff0c\u5728\u9879\u76ee\u4e2d\u5bfc\u5165amplify\u3002\u8f93\u5165\u4ee5\u4e0b\u547d\u4ee4\u540e\uff0c\u4f1a\u5f39\u51fa\u4e0e\u9ed8\u8ba4\u7f16\u8f91\u5668\u548c\u4f7f\u7528\u7684\u6846\u67b6\u76f8\u5173\u7684\u95ee\u9898\uff0c\u8bf7\u56de\u7b54\u8fd9\u4e9b\u95ee\u9898\u3002<\/p>\n<pre class=\"post-pre\"><code>amplify init\r\n\r\n? Enter a name for the project chatapp\r\n? Enter a name for the environment dev\r\n? Choose your default editor: Visual Studio Code\r\n? Choose the type of app that you're building javascript\r\nPlease tell us about your project\r\n? What javascript framework are you using react\r\n? Source Directory Path:  src\r\n? Distribution Directory Path: build\r\n? Build Command:  npm run-script build\r\n? Start Command: npm run-script start\r\nUsing default provider  awscloudformation\r\n\r\n? Select the authentication method you want to use: (Use arrow keys)\r\n? Select the authentication method you want to use: AWS profile\r\n\r\nFor more information on AWS Profiles, see:\r\nhttps:\/\/docs.aws.amazon.com\/cli\/latest\/userguide\/cli-configure-profiles.html\r\n\r\n? Please choose the profile you want to use default\r\n<\/code><\/pre>\n<h3>\u6784\u5efaAPI(GraphQL)\u8d44\u6e90<\/h3>\n<p>\u901a\u8fc7\u4ee5\u4e0b\u547d\u4ee4\u9010\u6b65\u56de\u7b54\u95ee\u9898\uff0c\u5c06\u5728amplify\/backend\u7684\u6839\u76ee\u5f55\u4e0b\u521b\u5efaapi\u6587\u4ef6\u5939\u3002<\/p>\n<pre class=\"post-pre\"><code>amplify add api\r\n\r\n? Please select from one of the below mentioned services: GraphQL\r\n? Provide API name: chatapp\r\n? Choose the default authorization type for the API API key\r\n? Enter a description for the API key:\r\n? After how many days from now the API key should expire (1-365): 365\r\n? Do you want to configure advanced settings for the GraphQL API No, I am done.\r\n? Do you have an annotated GraphQL schema? No\r\n? Choose a schema template: Single object with fields (e.g., \u201cTodo\u201d with ID, name, description)\r\n<\/code><\/pre>\n<p>\u5728 schema.graphql \u4e2d\u5b9a\u4e49\u6a21\u5f0f\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"k\">type<\/span> <span class=\"n\">Post<\/span> <span class=\"err\">@<\/span><span class=\"n\">model<\/span> <span class=\"p\">{<\/span>\r\n  <span class=\"n\">id<\/span><span class=\"p\">:<\/span> <span class=\"nb\">ID<\/span><span class=\"p\">!<\/span>\r\n  <span class=\"n\">postOwnerId<\/span><span class=\"p\">:<\/span> <span class=\"nb\">String<\/span><span class=\"p\">!<\/span>\r\n  <span class=\"n\">postOwnerUsername<\/span><span class=\"p\">:<\/span> <span class=\"nb\">String<\/span><span class=\"p\">!<\/span>\r\n  <span class=\"n\">postTitle<\/span><span class=\"p\">:<\/span> <span class=\"nb\">String<\/span><span class=\"p\">!<\/span>\r\n  <span class=\"n\">postBody<\/span><span class=\"p\">:<\/span> <span class=\"nb\">String<\/span><span class=\"p\">!<\/span>\r\n  <span class=\"n\">createdAt<\/span><span class=\"p\">:<\/span> <span class=\"nb\">String<\/span>\r\n  <span class=\"n\">comments<\/span><span class=\"p\">:<\/span> <span class=\"p\">[<\/span><span class=\"n\">Comment<\/span><span class=\"p\">]<\/span> <span class=\"err\">@<\/span><span class=\"n\">connection<\/span><span class=\"p\">(<\/span><span class=\"n\">name<\/span><span class=\"p\">:<\/span> <span class=\"err\">\"<\/span><span class=\"n\">PostComments<\/span><span class=\"err\">\"<\/span><span class=\"p\">)<\/span> <span class=\"c\">#relationship<\/span>\r\n  <span class=\"n\">likes<\/span><span class=\"p\">:<\/span> <span class=\"p\">[<\/span><span class=\"n\">Like<\/span><span class=\"p\">]<\/span> <span class=\"err\">@<\/span><span class=\"n\">connection<\/span><span class=\"p\">(<\/span><span class=\"n\">name<\/span><span class=\"p\">:<\/span> <span class=\"err\">\"<\/span><span class=\"n\">PostLikes<\/span><span class=\"err\">\"<\/span><span class=\"p\">)<\/span>\r\n<span class=\"p\">}<\/span>\r\n\r\n<span class=\"k\">type<\/span> <span class=\"n\">Comment<\/span> <span class=\"err\">@<\/span><span class=\"n\">model<\/span> <span class=\"p\">{<\/span>\r\n  <span class=\"n\">id<\/span><span class=\"p\">:<\/span> <span class=\"nb\">ID<\/span><span class=\"p\">!<\/span>\r\n  <span class=\"n\">commentOwnerId<\/span><span class=\"p\">:<\/span> <span class=\"nb\">String<\/span><span class=\"p\">!<\/span>\r\n  <span class=\"n\">commentOwnerUsername<\/span><span class=\"p\">:<\/span> <span class=\"nb\">String<\/span><span class=\"p\">!<\/span>\r\n  <span class=\"n\">post<\/span><span class=\"p\">:<\/span> <span class=\"n\">Post<\/span> <span class=\"err\">@<\/span><span class=\"n\">connection<\/span><span class=\"p\">(<\/span><span class=\"n\">name<\/span><span class=\"p\">:<\/span> <span class=\"err\">\"<\/span><span class=\"n\">PostComments<\/span><span class=\"err\">\"<\/span><span class=\"p\">)<\/span>\r\n  <span class=\"n\">content<\/span><span class=\"p\">:<\/span> <span class=\"nb\">String<\/span><span class=\"p\">!<\/span>\r\n  <span class=\"n\">createdAt<\/span><span class=\"p\">:<\/span> <span class=\"nb\">String<\/span><span class=\"p\">!<\/span>\r\n<span class=\"p\">}<\/span>\r\n\r\n<span class=\"k\">type<\/span> <span class=\"n\">Like<\/span> <span class=\"err\">@<\/span><span class=\"n\">model<\/span> <span class=\"p\">{<\/span>\r\n  <span class=\"n\">id<\/span><span class=\"p\">:<\/span> <span class=\"nb\">ID<\/span><span class=\"p\">!<\/span>\r\n  <span class=\"n\">numberLikes<\/span><span class=\"p\">:<\/span> <span class=\"nb\">Int<\/span><span class=\"p\">!<\/span>\r\n  <span class=\"n\">likeOwnerId<\/span><span class=\"p\">:<\/span> <span class=\"nb\">String<\/span><span class=\"p\">!<\/span>\r\n  <span class=\"n\">likeOwnerUsername<\/span><span class=\"p\">:<\/span> <span class=\"nb\">String<\/span><span class=\"p\">!<\/span>\r\n  <span class=\"n\">post<\/span><span class=\"p\">:<\/span> <span class=\"n\">Post<\/span> <span class=\"err\">@<\/span><span class=\"n\">connection<\/span><span class=\"p\">(<\/span><span class=\"n\">name<\/span><span class=\"p\">:<\/span> <span class=\"err\">\"<\/span><span class=\"n\">PostLikes<\/span><span class=\"err\">\"<\/span><span class=\"p\">)<\/span>\r\n<span class=\"p\">}<\/span>\r\n<\/code><\/pre>\n<p>\u82e5\u5728&#8221;type&#8221;\u4e0a\u6dfb\u52a0&#8221;model&#8221;\u6307\u4ee4\uff0c\u5b83\u5c06\u81ea\u52a8\u751f\u6210\u4e0e\u6570\u636e\u6e90(DynamoDB)\u7684\u8fde\u63a5\u4ee5\u53ca\u89e3\u6790\u5668\u3002\u6b64\u5916\uff0c\u4f7f\u7528amplify codegen\uff0c\u8fd8\u53ef\u4ee5\u81ea\u52a8\u751f\u6210\u5ba2\u6237\u7aef\u6e90\u4ee3\u7801\u5e93\uff0c\u4ee5\u4fbf\u5728src\/graphql\u4e2d\u8bbf\u95ee\u3002<\/p>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d8265913a08637a6b023a\/21-0.png\" alt=\"\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8 2021-02-28 21.13.08.png\" \/><\/div>\n<p>\u5f53\u6267\u884camplify push\u547d\u4ee4\u5e76\u56de\u7b54\u4ee5\u4e0b\u95ee\u9898\u65f6\uff0c\u5c06\u4f1a\u90e8\u7f72AWS\u8d44\u6e90\uff08AppSync\uff09\u3002<\/p>\n<pre class=\"post-pre\"><code>amplify push\r\n\r\n| Category | Resource name | Operation | Provider plugin   |\r\n| -------- | ------------- | --------- | ----------------- |\r\n| Api      | chatapp       | Create    | awscloudformation |\r\n\r\n? Are you sure you want to continue? Yes\r\n? Do you want to generate code for your newly created GraphQL API Yes\r\n? Choose the code generation language target javascript\r\n? Enter the file name pattern of graphql queries, mutations and subscriptions src\/graphql\/**\/*.js\r\n? Do you want to generate\/update all possible GraphQL operations - queries, mutations and subscriptions Yes\r\n? Enter maximum statement depth [increase from default if your schema is deeply nested] 2\r\n<\/code><\/pre>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d8265913a08637a6b023a\/24-0.png\" alt=\"\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8 2021-02-28 20.43.34.png\" \/><\/div>\n<h3>\u5efa\u7acbAuth\u8d44\u6e90<\/h3>\n<p>\u5728\u6267\u884c &#8220;amplify add auth&#8221; \u540e\uff0c\u60a8\u53ef\u4ee5\u901a\u8fc7\u4f7f\u7528 &#8220;amplify push&#8221; \u6765\u6784\u5efaAWS\u8d44\u6e90\uff08Cognito\uff09\u3002<\/p>\n<pre class=\"post-pre\"><code>amplify add auth\r\n\r\nUsing service: Cognito, provided by: awscloudformation\r\n\r\n The current configured provider is Amazon Cognito.\r\n\r\n Do you want to use the default authentication and security configuration? Default configuration\r\n Warning: you will not be able to edit these selections.\r\n How do you want users to be able to sign in? Username\r\n Do you want to configure advanced settings? No, I am done.\r\n<\/code><\/pre>\n<h2>\u524d\u7aef\u914d\u7f6e<\/h2>\n<p>\u6211\u6574\u7406\u4e86\u5982\u4f55\u5728\u524d\u7aef\uff08React\uff09\u4e2d\u4f7f\u7528\u914d\u7f6e\u597d\u7684 AWS \u8d44\u6e90\u7684\u65b9\u6cd5\u3002<\/p>\n<h3>API\uff08GraphQL\uff09<\/h3>\n<p>\u6211\u6574\u7406\u4e86\u5982\u4f55\u4f7f\u7528\u521b\u5efa\u7684Query\u548cMutation\u7684\u65b9\u6cd5\u3002<\/p>\n<h4>\u67e5\u8be2<\/h4>\n<p>\u901a\u8fc7\u8fd0\u884cnpm install aws-amplify aws-amplify-react\u5b89\u88c5\u6240\u9700\u7684\u5e93\uff0c\u5e76\u52a0\u8f7d\u5df2\u521b\u5efa\u7684\u67e5\u8be2\u6765\u6267\u884cAPI.graphql\uff08graphqlOperation\uff08listPosts\uff09\uff09\u3002\u5728\u83b7\u53d6\u6570\u636e\u540e\uff0c\u6211\u4eec\u5e0c\u671b\u8fdb\u884c\u663e\u793a\uff0c\u6240\u4ee5\u8fdb\u884c\u4e86\u5f02\u6b65\u5904\u7406\uff08async~await\uff09\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">listPosts<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">..\/graphql\/queries<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\r\n<span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">API<\/span><span class=\"p\">,<\/span> <span class=\"nx\">graphqlOperation<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">aws-amplify<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\r\n\r\n\r\n<span class=\"kd\">const<\/span> <span class=\"nx\">getPosts<\/span> <span class=\"o\">=<\/span> <span class=\"k\">async<\/span> <span class=\"p\">()<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\r\n  <span class=\"kd\">const<\/span> <span class=\"nx\">result<\/span> <span class=\"o\">=<\/span> <span class=\"k\">await<\/span> <span class=\"nx\">API<\/span><span class=\"p\">.<\/span><span class=\"nx\">graphql<\/span><span class=\"p\">(<\/span><span class=\"nx\">graphqlOperation<\/span><span class=\"p\">(<\/span><span class=\"nx\">listPosts<\/span><span class=\"p\">));<\/span>\r\n<span class=\"p\">};<\/span>\r\n<\/code><\/pre>\n<h4>\u7a81\u53d8 (t\u00fa<\/h4>\n<p>\u8fd9\u4e5f\u4e0e\u67e5\u8be2\u7c7b\u4f3c\uff0c\u4ecegraphql\u6587\u4ef6\u5939\u4e2d\u8bfb\u53d6\u5e76\u6267\u884c\u3002<br \/>\n\u4ee5\u4e0b\u662fdeletePost\u7684\u793a\u4f8b\u3002\u4e3a\u4e86\u6307\u5b9a\u8981\u5220\u9664\u7684post\uff0c\u5b83\u5c06postId\u4f5c\u4e3a\u53c2\u6570\u3002<\/p>\n<pre class=\"post-pre\"><code>  <span class=\"kd\">const<\/span> <span class=\"nx\">handleDeletePost<\/span> <span class=\"o\">=<\/span> <span class=\"k\">async<\/span> <span class=\"p\">(<\/span><span class=\"nx\">postId<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\r\n    <span class=\"kd\">const<\/span> <span class=\"nx\">input<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span>\r\n      <span class=\"na\">id<\/span><span class=\"p\">:<\/span> <span class=\"nx\">postId<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"p\">};<\/span>\r\n\r\n    <span class=\"k\">await<\/span> <span class=\"nx\">API<\/span><span class=\"p\">.<\/span><span class=\"nx\">graphql<\/span><span class=\"p\">(<\/span><span class=\"nx\">graphqlOperation<\/span><span class=\"p\">(<\/span><span class=\"nx\">deletePost<\/span><span class=\"p\">,<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">input<\/span> <span class=\"p\">}));<\/span>\r\n<\/code><\/pre>\n<h3>\u8ba4\u8bc1<\/h3>\n<p>\u6211\u5c06\u5bfc\u5165withAuthentificator\u5e76\u5c06\u5176\u5305\u88c5\u5728App\u4e2d\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"k\">import<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">.\/App.css<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\r\n<span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">DisplayPosts<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">.\/components\/DisplayPosts<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\r\n<span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">CreatePost<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">.\/components\/CreatePost<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\r\n<span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">withAuthenticator<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">aws-amplify-react<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\r\n\r\n<span class=\"kd\">function<\/span> <span class=\"nx\">App<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\r\n  <span class=\"k\">return<\/span> <span class=\"p\">(<\/span>\r\n    <span class=\"p\">&lt;<\/span><span class=\"nt\">div<\/span> <span class=\"na\">className<\/span><span class=\"p\">=<\/span><span class=\"s\">\"App\"<\/span><span class=\"p\">&gt;<\/span>\r\n      <span class=\"p\">&lt;<\/span><span class=\"nc\">CreatePost<\/span> <span class=\"p\">\/&gt;<\/span>\r\n      <span class=\"p\">&lt;<\/span><span class=\"nc\">DisplayPosts<\/span> <span class=\"p\">\/&gt;<\/span>\r\n    <span class=\"p\">&lt;\/<\/span><span class=\"nt\">div<\/span><span class=\"p\">&gt;<\/span>\r\n  <span class=\"p\">);<\/span>\r\n<span class=\"p\">}<\/span>\r\n\r\n<span class=\"k\">export<\/span> <span class=\"k\">default<\/span> <span class=\"nx\">withAuthenticator<\/span><span class=\"p\">(<\/span><span class=\"nx\">App<\/span><span class=\"p\">,<\/span> <span class=\"p\">{<\/span> <span class=\"na\">includeGreetings<\/span><span class=\"p\">:<\/span> <span class=\"kc\">true<\/span> <span class=\"p\">});<\/span>\r\n\r\n<\/code><\/pre>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d8265913a08637a6b023a\/41-0.png\" alt=\"\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8 2021-03-01 8.00.01.png\" \/><\/div>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d8265913a08637a6b023a\/42-0.png\" alt=\"\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8 2021-03-01 8.02.24.png\" \/><\/div>\n<h1>\u6700\u540e<\/h1>\n<p>\u6211\u5728\u8003\u8651\u4f7f\u7528React Native+ Amplify\u6784\u5efa\u4e00\u4e2a\u4e13\u95e8\u9488\u5bf9\u80c3\u90e8\u4e0d\u9002\u4eba\u7fa4\u7684\u670d\u52a1\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u9996\u5148 \u6211\u542c\u8bf4\u4f7f\u7528 AWS Amplify \u53ef\u4ee5\u8f7b\u677e\u521b\u5efa\u65e0\u670d\u52a1\u5668\u7684\u540e\u7aef\u3002\u6211\u4e00\u76f4\u60f3\u5c1d\u8bd5\u4e2a\u4eba\u5e94\u7528\u5f00\u53d1\uff0c\u4f46\u662f\u7531\u4e8e\u540e\u7aef\u6784 [&hellip;]<\/p>\n","protected":false},"author":11,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-47990","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u6211\u6574\u7406\u4e86\u4f7f\u7528AWS Amplify\u5c06\u8d44\u6e90\uff08API\uff0cAuth\uff09\u6784\u5efa\u548c\u5bfc\u5165\u5230\u524d\u7aef\uff08React\uff09\u7684\u6b65\u9aa4 - Blog - Silicon Cloud<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/zh\/blog\/\u6211\u6574\u7406\u4e86\u4f7f\u7528aws-amplify\u5c06\u8d44\u6e90\uff08api\uff0cauth\uff09\u6784\u5efa\u548c\u5bfc\u5165\u5230\u524d\u7aef\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u6211\u6574\u7406\u4e86\u4f7f\u7528AWS Amplify\u5c06\u8d44\u6e90\uff08API\uff0cAuth\uff09\u6784\u5efa\u548c\u5bfc\u5165\u5230\u524d\u7aef\uff08React\uff09\u7684\u6b65\u9aa4\" \/>\n<meta property=\"og:description\" content=\"\u9996\u5148 \u6211\u542c\u8bf4\u4f7f\u7528 AWS Amplify \u53ef\u4ee5\u8f7b\u677e\u521b\u5efa\u65e0\u670d\u52a1\u5668\u7684\u540e\u7aef\u3002\u6211\u4e00\u76f4\u60f3\u5c1d\u8bd5\u4e2a\u4eba\u5e94\u7528\u5f00\u53d1\uff0c\u4f46\u662f\u7531\u4e8e\u540e\u7aef\u6784 [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/zh\/blog\/\u6211\u6574\u7406\u4e86\u4f7f\u7528aws-amplify\u5c06\u8d44\u6e90\uff08api\uff0cauth\uff09\u6784\u5efa\u548c\u5bfc\u5165\u5230\u524d\u7aef\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2022-12-03T05:29:56+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-05-04T08:38:45+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d8265913a08637a6b023a\/21-0.png\" \/>\n<meta name=\"author\" content=\"\u65b0, \u97f5\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u65b0, \u97f5\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e6%95%b4%e7%90%86%e4%ba%86%e4%bd%bf%e7%94%a8aws-amplify%e5%b0%86%e8%b5%84%e6%ba%90%ef%bc%88api%ef%bc%8cauth%ef%bc%89%e6%9e%84%e5%bb%ba%e5%92%8c%e5%af%bc%e5%85%a5%e5%88%b0%e5%89%8d%e7%ab%af\/\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e6%95%b4%e7%90%86%e4%ba%86%e4%bd%bf%e7%94%a8aws-amplify%e5%b0%86%e8%b5%84%e6%ba%90%ef%bc%88api%ef%bc%8cauth%ef%bc%89%e6%9e%84%e5%bb%ba%e5%92%8c%e5%af%bc%e5%85%a5%e5%88%b0%e5%89%8d%e7%ab%af\/\",\"name\":\"\u6211\u6574\u7406\u4e86\u4f7f\u7528AWS Amplify\u5c06\u8d44\u6e90\uff08API\uff0cAuth\uff09\u6784\u5efa\u548c\u5bfc\u5165\u5230\u524d\u7aef\uff08React\uff09\u7684\u6b65\u9aa4 - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\"},\"datePublished\":\"2022-12-03T05:29:56+00:00\",\"dateModified\":\"2024-05-04T08:38:45+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/4ba4019495123db3038fd0809e6959c9\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e6%95%b4%e7%90%86%e4%ba%86%e4%bd%bf%e7%94%a8aws-amplify%e5%b0%86%e8%b5%84%e6%ba%90%ef%bc%88api%ef%bc%8cauth%ef%bc%89%e6%9e%84%e5%bb%ba%e5%92%8c%e5%af%bc%e5%85%a5%e5%88%b0%e5%89%8d%e7%ab%af\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e6%95%b4%e7%90%86%e4%ba%86%e4%bd%bf%e7%94%a8aws-amplify%e5%b0%86%e8%b5%84%e6%ba%90%ef%bc%88api%ef%bc%8cauth%ef%bc%89%e6%9e%84%e5%bb%ba%e5%92%8c%e5%af%bc%e5%85%a5%e5%88%b0%e5%89%8d%e7%ab%af\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e6%95%b4%e7%90%86%e4%ba%86%e4%bd%bf%e7%94%a8aws-amplify%e5%b0%86%e8%b5%84%e6%ba%90%ef%bc%88api%ef%bc%8cauth%ef%bc%89%e6%9e%84%e5%bb%ba%e5%92%8c%e5%af%bc%e5%85%a5%e5%88%b0%e5%89%8d%e7%ab%af\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.silicloud.com\/zh\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u6211\u6574\u7406\u4e86\u4f7f\u7528AWS Amplify\u5c06\u8d44\u6e90\uff08API\uff0cAuth\uff09\u6784\u5efa\u548c\u5bfc\u5165\u5230\u524d\u7aef\uff08React\uff09\u7684\u6b65\u9aa4\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/\",\"name\":\"Blog - Silicon Cloud\",\"description\":\"\",\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/4ba4019495123db3038fd0809e6959c9\",\"name\":\"\u65b0, \u97f5\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/d484b6c6e4ae82e8a9efea989e1d2af46d9b6ef128101e63b18f559fca0ae627?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/d484b6c6e4ae82e8a9efea989e1d2af46d9b6ef128101e63b18f559fca0ae627?s=96&d=mm&r=g\",\"caption\":\"\u65b0, \u97f5\"},\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/author\/yunxin\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e6%95%b4%e7%90%86%e4%ba%86%e4%bd%bf%e7%94%a8aws-amplify%e5%b0%86%e8%b5%84%e6%ba%90%ef%bc%88api%ef%bc%8cauth%ef%bc%89%e6%9e%84%e5%bb%ba%e5%92%8c%e5%af%bc%e5%85%a5%e5%88%b0%e5%89%8d%e7%ab%af\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\u6211\u6574\u7406\u4e86\u4f7f\u7528AWS Amplify\u5c06\u8d44\u6e90\uff08API\uff0cAuth\uff09\u6784\u5efa\u548c\u5bfc\u5165\u5230\u524d\u7aef\uff08React\uff09\u7684\u6b65\u9aa4 - Blog - Silicon Cloud","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/zh\/blog\/\u6211\u6574\u7406\u4e86\u4f7f\u7528aws-amplify\u5c06\u8d44\u6e90\uff08api\uff0cauth\uff09\u6784\u5efa\u548c\u5bfc\u5165\u5230\u524d\u7aef\/","og_locale":"zh_CN","og_type":"article","og_title":"\u6211\u6574\u7406\u4e86\u4f7f\u7528AWS Amplify\u5c06\u8d44\u6e90\uff08API\uff0cAuth\uff09\u6784\u5efa\u548c\u5bfc\u5165\u5230\u524d\u7aef\uff08React\uff09\u7684\u6b65\u9aa4","og_description":"\u9996\u5148 \u6211\u542c\u8bf4\u4f7f\u7528 AWS Amplify \u53ef\u4ee5\u8f7b\u677e\u521b\u5efa\u65e0\u670d\u52a1\u5668\u7684\u540e\u7aef\u3002\u6211\u4e00\u76f4\u60f3\u5c1d\u8bd5\u4e2a\u4eba\u5e94\u7528\u5f00\u53d1\uff0c\u4f46\u662f\u7531\u4e8e\u540e\u7aef\u6784 [&hellip;]","og_url":"https:\/\/www.silicloud.com\/zh\/blog\/\u6211\u6574\u7406\u4e86\u4f7f\u7528aws-amplify\u5c06\u8d44\u6e90\uff08api\uff0cauth\uff09\u6784\u5efa\u548c\u5bfc\u5165\u5230\u524d\u7aef\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2022-12-03T05:29:56+00:00","article_modified_time":"2024-05-04T08:38:45+00:00","og_image":[{"url":"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d8265913a08637a6b023a\/21-0.png"}],"author":"\u65b0, \u97f5","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"\u65b0, \u97f5","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"3 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e6%95%b4%e7%90%86%e4%ba%86%e4%bd%bf%e7%94%a8aws-amplify%e5%b0%86%e8%b5%84%e6%ba%90%ef%bc%88api%ef%bc%8cauth%ef%bc%89%e6%9e%84%e5%bb%ba%e5%92%8c%e5%af%bc%e5%85%a5%e5%88%b0%e5%89%8d%e7%ab%af\/","url":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e6%95%b4%e7%90%86%e4%ba%86%e4%bd%bf%e7%94%a8aws-amplify%e5%b0%86%e8%b5%84%e6%ba%90%ef%bc%88api%ef%bc%8cauth%ef%bc%89%e6%9e%84%e5%bb%ba%e5%92%8c%e5%af%bc%e5%85%a5%e5%88%b0%e5%89%8d%e7%ab%af\/","name":"\u6211\u6574\u7406\u4e86\u4f7f\u7528AWS Amplify\u5c06\u8d44\u6e90\uff08API\uff0cAuth\uff09\u6784\u5efa\u548c\u5bfc\u5165\u5230\u524d\u7aef\uff08React\uff09\u7684\u6b65\u9aa4 - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website"},"datePublished":"2022-12-03T05:29:56+00:00","dateModified":"2024-05-04T08:38:45+00:00","author":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/4ba4019495123db3038fd0809e6959c9"},"breadcrumb":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e6%95%b4%e7%90%86%e4%ba%86%e4%bd%bf%e7%94%a8aws-amplify%e5%b0%86%e8%b5%84%e6%ba%90%ef%bc%88api%ef%bc%8cauth%ef%bc%89%e6%9e%84%e5%bb%ba%e5%92%8c%e5%af%bc%e5%85%a5%e5%88%b0%e5%89%8d%e7%ab%af\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e6%95%b4%e7%90%86%e4%ba%86%e4%bd%bf%e7%94%a8aws-amplify%e5%b0%86%e8%b5%84%e6%ba%90%ef%bc%88api%ef%bc%8cauth%ef%bc%89%e6%9e%84%e5%bb%ba%e5%92%8c%e5%af%bc%e5%85%a5%e5%88%b0%e5%89%8d%e7%ab%af\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e6%95%b4%e7%90%86%e4%ba%86%e4%bd%bf%e7%94%a8aws-amplify%e5%b0%86%e8%b5%84%e6%ba%90%ef%bc%88api%ef%bc%8cauth%ef%bc%89%e6%9e%84%e5%bb%ba%e5%92%8c%e5%af%bc%e5%85%a5%e5%88%b0%e5%89%8d%e7%ab%af\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.silicloud.com\/zh\/blog\/"},{"@type":"ListItem","position":2,"name":"\u6211\u6574\u7406\u4e86\u4f7f\u7528AWS Amplify\u5c06\u8d44\u6e90\uff08API\uff0cAuth\uff09\u6784\u5efa\u548c\u5bfc\u5165\u5230\u524d\u7aef\uff08React\uff09\u7684\u6b65\u9aa4"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website","url":"https:\/\/www.silicloud.com\/zh\/blog\/","name":"Blog - Silicon Cloud","description":"","inLanguage":"zh-Hans"},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/4ba4019495123db3038fd0809e6959c9","name":"\u65b0, \u97f5","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/d484b6c6e4ae82e8a9efea989e1d2af46d9b6ef128101e63b18f559fca0ae627?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d484b6c6e4ae82e8a9efea989e1d2af46d9b6ef128101e63b18f559fca0ae627?s=96&d=mm&r=g","caption":"\u65b0, \u97f5"},"url":"https:\/\/www.silicloud.com\/zh\/blog\/author\/yunxin\/"},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e6%95%b4%e7%90%86%e4%ba%86%e4%bd%bf%e7%94%a8aws-amplify%e5%b0%86%e8%b5%84%e6%ba%90%ef%bc%88api%ef%bc%8cauth%ef%bc%89%e6%9e%84%e5%bb%ba%e5%92%8c%e5%af%bc%e5%85%a5%e5%88%b0%e5%89%8d%e7%ab%af\/#local-main-organization-logo","url":"","contentUrl":"","caption":"Blog - Silicon Cloud"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/47990","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/users\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/comments?post=47990"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/47990\/revisions"}],"predecessor-version":[{"id":99465,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/47990\/revisions\/99465"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/media?parent=47990"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/categories?post=47990"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/tags?post=47990"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}