Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
API de servicio de Cloud Gem Framework
Open 3D Engine (O3DE), el sucesor de Lumberyard, ya está disponible en Developer Preview. Descargar O3DE |
Temas
Las gemas de nube de Lumberyard proporcionan servicios que configuran y administran el funcionamiento de un juego. Los servicios se implementan por medio de recursos de funciones de AWS Lambda
En el diagrama siguiente se muestra cómo la API de servicio de Cloud Gem Framework interactúa con el cliente de juego,AWS Lambday API Gateway.

Descripciones de API swagger de gema de nube
Las herramientas y el motor de videojuegos Lumberyard utilizan operaciones API para comunicarse con su servicio de gema de nube. Estas API se describen en el archivo /dev/Gems/
de la gema en la nube. En este archivo se describen los datos de entrada y salida para cada una de las operaciones que puede realizar el servicio. El archivo <gem-name>
/AWS/swagger.jsonswagger.json
utiliza el formato de definición de API de swagger
A continuación se muestra un ejemplo de un archivo swagger.json
.
{ "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 componentes de motor Lumberyard que ejecutan API de servicio para el juego. Además, las descripciones de API se utilizan para configurar API Gateway para trabajar con su servicio.