Swiftpack.co - Package - a-roberts/adamswiftbffmc


Backend for Frontend (BFF) project with Kitura on Swift


Table of Contents


The Backend for Frontend pattern, commonly known as BFFs, helps you focus on exposing business data and services in a form that matches the user interaction requirements. For instance, to optimize a user journey to your cloud solution, it may require a different user journey for the mobile application but a richer, more detailed journey for the Web application. With IBM Cloud, you can build a BFF by using polyglot programming approach to define the BFF- using Node.js, Swift, or Java. The BFF service exposes a RESTful API matching a Swagger definition.


Local Development Tools Setup (optional)

IBM Cloud development tools setup (optional)

  1. Install Docker on your machine.
# Install needed dependencies:
idt install
# Build the docker image for your app:
idt build
# Run the app locally through docker:
idt run
# Deploy your app to IBM Cloud using Cloud Foundry:
idt deploy
# Deploy your app to IBM Cloud using Kubernetes:
idt deploy --target container
  1. Install the IBM Cloud CLI
  2. Install the plugin with: bx plugin install dev -r bluemix

IBM Cloud DevOps setup (optional)

Create Toolchain

IBM Cloud DevOps services provides toolchains as a set of tool integrations that support development, deployment, and operations tasks inside Bluemix. The "Create Toolchain" button creates a DevOps toolchain and acts as a single-click deploy to IBM Cloud including provisioning all required services.

*Note you must publish your project to Github for this to work.


Your application configuration information is stored in config.json. If you selected services added to your project, you will see Cloudant, Object Storage, and other services with their connection information such as username, password, and hostname listed here. This is useful for connecting to remote services while running your application locally.

When you push your application to IBM Cloud, however, these values are no longer used, and instead IBM Cloud automatically connects to those bound services through the use of environment variables. The config.json file has been added to the .gitignore file so you don't accidently check in the secret credentials.


Using IBM Cloud development CLI

The IBM Cloud development plugin makes it easy to compile and run your application if you do not have all of the tools installed on your computer yet. Your application will be compiled with Docker containers. To compile and run your app, run:

bx dev build
bx dev run

Using your local development environment

Once the Swift toolchain has been installed, you can compile a Swift project with:

swift build

Your sources will be compiled to your .build/debug directory.


Your application is running at: http://localhost:8080/ in your browser.

  • Your Swagger UI is running on: /explorer
  • Your Swagger definition is running on: /swagger/api


Using IBM Cloud development CLI

To build and debug your app, run:

bx dev build --debug
bx dev debug


Stars: 0
Help us keep the lights on

Used By