API del servicio Cloud Gem Framework - Lumberyard Guía del usuario

Si proporcionásemos una traducción de la versión en inglés de la guía, prevalecerá la versión en inglés de la guía si hubiese algún conflicto. La traducción se proporciona mediante traducción automática.

API del servicio Cloud Gem Framework

Esta documentación es preliminar y sujeto a cambios.

Lumberyard Las gemas en la nube proporcionan servicios como el Cloud Gem Portal (CGP) que configura y administra el de un juego operación. Los servicios son implementados por AWS Lambda Los recursos de función de. El juego y las herramientas acceden a estos servicios a través de el Amazon API Gateway. El código que proporcione se ejecuta en una función Lambda. API Gateway administra el acceso al servicio, proporciona almacenamiento en caché para de uso frecuente y admite la limitación controlada de solicitudes.

El siguiente diagrama muestra cómo interactúa la API del servicio Cloud Gem Framework con el del cliente de juego, Cloud Gem Portal, AWS Lambda, y API Gateway.


            Interacciones de la API de servicio

Swagger de gema en la nube Descripciones de API

El Lumberyard Las herramientas y el motor de juegos de utilizan operaciones de API para comunicarse con la gema en la nube servicio técnico. Estas API se describen en las API de la gema en la nube /dev/Gems/<gem-name>/AWS/swagger.json del archivo. Este archivo describe los datos de entrada y salida de cada una de las operaciones que pueden ser realizadas por el servicio. El swagger.json del archivo utiliza el formato de definición de API de swagger, que es un para las operaciones de la API RESTful.

El siguiente es un ejemplo swagger.json del archivo.

{ "swagger": "2.0", "info": { "version": "1.0.0", "title": "$RestApiResourceName$", "description": "API for the $ResourceGroupName$ service ($DeploymentName$ deployment)." }, "schemes": [ "https" ], "consumes": [ "application/json" ], "produces": [ "application/json" ], "x-amazon-cloud-canvas-lambda-dispatch": { "lambda": "$ServiceLambdaArn$" }, "paths": { "/service/status": { "x-amazon-cloud-canvas-lambda-dispatch": { "module": "service_status" }, "get": { "operationId": "get_service_status", "description": "Returns the service's status. Useful for testing connectivity.", "responses": { "200": { "description": "A successful service status response.", "schema": { "$ref": "#/definitions/ServiceStatus" } } } } }, "/admin/messages": { "post": { "description": "Add a message to the message table", "parameters": [ { "name": "msg", "in": "body", "required": true, "schema": { "$ref": "#/definitions/MessageData" } } ], "responses": { "200": { "description": "Unique ID for this new message", "schema": { "$ref": "#/definitions/DetailedMessageData" } } } }, "get": { "description": "Get the list of N messages starting at a given index and filter with all, active, expired or planned", "parameters": [ { "description": "The index number of the page to fetch first. Example: 0", "name": "index", "in": "query", "required": true, "type": "integer" }, { "description": "The maximum number of messages to fetch. Example: 1000", "name": "count", "in": "query", "required": true, "type": "integer" }, { "description": "Options available here are 'active', 'planned', 'expired'. Example: active", "name": "filter", "in": "query", "required": true, "type": "string" } ], "responses": { "200": { "description": "The list of detailed messages ", "schema": { "$ref": "#/definitions/DetailedMessageList" } } } } }, "/admin/messages/{msg_id}": { "delete": { "description": "Delete an existing message", "parameters": [ { "name": "msg_id", "description": "The message id to edit.", "in": "path", "required": true, "type": "string" } ], "responses": { "200": { "description": "Status of the deletion", "schema": { "format": "string" } } } }, "put": { "description": "Edit an existing message", "parameters": [ { "name": "msg_id", "description": "The message id to edit.", "in": "path", "required": true, "type": "string" }, { "name": "msg", "in": "body", "description": "The new localized message body.", "required": true, "schema": { "$ref": "#/definitions/MessageData" } } ], "responses": { "200": { "description": "Status of the addition", "schema": { "format": "string" } } } } }, "/player/messages": { "get": { "description": "Get the list of messages scheduled for a given time and language", "parameters": [ { "name": "time", "description": "The player's local time. Example: Jul 18 2017 13:43", "in": "query", "type": "string" }, { "name": "lang", "description": "The ISO 639-1 language code. Example: en", "in": "query", "type": "string" } ], "responses": { "200": { "description": "The list of messages for that time and language. If no time or lang is provided ti falls back to UTC Eng", "schema": { "$ref": "#/definitions/MessageList" } } } } } }, "definitions": { "ServiceStatus": { "type": "object", "properties": { "status": { "type": "string" } }, "required": [ "status" ] }, "MessageData": { "type": "object", "properties": { "message": { "description": "Required - The localized message of the day text.", "type": "string" }, "priority": { "description": "The priority in which to view the message. 0 has the highest priority.", "type": "integer" }, "startTime": { "description": "The date time in which to start displaying the message. Example: Jul 18 2017 00:00", "type": "string" }, "endTime": { "description": "The date time in which to stop displaying the message. Example: Jul 19 2017 16:00", "type": "string" } }, "required": [ "message" ] }, "DetailedMessageData": { "type": "object", "properties": { "UniqueMsgID": { "description": "The unique message id.", "type": "string" }, "message": { "description": "The localized message body.", "type": "string" }, "priority": { "description": "The priority in which to view the message. 0 has the highest priority.", "type": "integer" }, "startTime": { "description": "The date time in which to start displaying the message. Example: Jul 18 2017 00:00", "type": "string" }, "endTime": { "description": "The date time in which to stop displaying the message. Example: Jul 19 2017 16:00", "type": "string" } } }, "MessageList": { "type": "object", "properties": { "list": { "type": "array", "items": { "$ref": "#/definitions/MessageData" } } } }, "DetailedMessageList": { "type": "object", "properties": { "list": { "type": "array", "items": { "$ref": "#/definitions/DetailedMessageData" } } } } } }

Cloud Canvas utiliza estas descripciones de API para generar Lumberyard los componentes del motor que ejecutan del servicio API del juego. El Cloud Gem Portal La aplicación web de también utiliza la API de La describe cuando realiza solicitudes de servicio. Además, se utilizan las descripciones de la API para configurar API de Puerta de enlace para trabajar con su servicio.