Amazon Smoke : un framework serveur écrit en Swift

Par:
fredericmazue

mar, 16/10/2018 - 17:31

Si Swift est pour le moment principalement utilisé pour ce pour quoi il a été conçu à la base, à savoir le développement d'application iOS. Il n'y a pas de raison qu'il ne trouve pas d'autres champs d'application. Amazon Smoke en est un exemple.

Amazon Smoke est un nouveau framework léger côté serveur écrit en Swift et dédié à la mise en place de services de type REST ou RPC. Son architecture met l'accent sur la facilité d'utilisation et favorise un style de programmation purement fonctionnel pour les gestionnaires de requêtes. Il prend en charge les requêtes et les réponses encodées en JSON.

Smoke Framework utilise SwiftNIO d'Apple pour sa couche réseau par défaut. Un concept clé dans Amazon Smoke est le contexte d'application, créé au moment du lancement et transmis à tous les gestionnaires de requêtes, éventuellement simultanément. Cette spécificité permet aux entités de portée d'application telles que d'autres clients du service d'être transmises aux gestionnaires de requêtes.

Les gestionnaires de requêtes peuvent être synchrones ou asynchrones. Dans les deux cas, ils reçoivent le contexte d'application en argument. Par exemple :

// Synchronous handler
func handleTheOperation(input: OperationInput, context: MyApplicationContext) throws -> OperationOutput {
  return OperationOutput()
}

// Asynchronous handler
func handleOperationAsync(input: OperationInput, context: MyApplicationContext,
                  responseHandler: (SmokeResult<OutputAttributes>) -> ()) throws {

  let result = OperationOutput()
  rensponseHandler(.response(attributes))
}

Amazon Smoke est open source, disponible sur GitHub.