This week at the Connect(); event in New York we released some new videos highlighting the upcoming improvements being made to Azure App Service. In the time since Azure App Service was announced in March, we’ve been listening to feedback and working to advance the capabilities and features of the platform to meet customers’ needs for today and tomorrow.
The initial rollout of Mobile Apps, API Apps and Logic Apps was received very well by Azure customers, and we want to update you on the next steps for these app types. In this blog post, we will discuss the changes and new features that are being made available in the coming weeks and months.
Mobile Apps updates
We’re pleased to share the following updates that we are making to Mobile Apps in response to customer feedback.
Authentication/Authorization for your web apps and mobile/API backends
Your mobile backends, APIs and web pages can now be protected via the same turn-key authentication/authorization experience. We have added support for all server- and client flows for Azure Active Directory, as well as Facebook, Google, Twitter, Microsoft Account, as well as custom – the same set that was originally supported for Mobile Services. We've also added ability to declare the scopes/claims required by the application.
Easy tables and APIs
We’ve heard loud and clear that customers really liked the ease of use of the Mobile Services Node.js Tables feature. With this update we've added no-code CRUD API authoring experience to Azure App Service in the portal.
You can now easily create mobile-friendly OData CRUD APIs backed by SQL Azure, called Easy Tables. You can view the data, design the schema for the entities. You can add your logic in Node.js in the browser with the help of Visual Studio Online Monaco. And of course when you use Easy Tables and APIs, we scaffold a regular Express.js app you can take over and customize according to your needs.
File sync support
App Service Mobile includes data sync capability that allows developers to build apps that work offline and synchronize with variety of data backend stores. Today we're adding support for files to the App Service Data Sync. This feature allows developers to reference the files from their entities exposed via App Service Mobile table controllers and synchronize files directly with blob storage configured on the backend. On the client side, we keep track of the changes to the files referenced from the entity. To use the feature, take advantage of the following APIs:
mobileClient.InitializeFileSync(new MyFileSyncHandler(this), syncStore);
await myTable.PullFilesAsync(entity);
await myTable.PushFileChangesAsync();
Where MyFileSyncHandler implements IFileSyncHandler to instructs where the files should be stored locally/allows to override synchronization rules.
On the server the feature handles automated issuance of SAS keys for the client to sync files directly to the blob storage, as well as handles basic synchronization tasks.
The client library for Xamarin and Windows is available here. A more detailed sample of using this feature is available here.
API Apps updates
Throughout the API Apps preview, we’ve received a lot of interest and adoption. We’ve also received candid feedback for improving the product and providing more value. Below we will explain the underlying changes we are making to API Apps to better align with Mobile and Web Apps, reduce concept count and improve deployment and runtime performance.
What’s changing
The key features of API Apps – authentication, CORS and API metadata – are moving directly into App Service. With this change, the features will be available across Web, Mobile and API Apps. The API Apps gateway will no longer be needed or offered with API Apps.
A key design principle with the API Apps update is to enable you to bring your API as is, in your language of choice. If your API is already deployed as a Web App or Mobile App*, you do not have to redeploy your app to take advantage of the new features.
*For customers currently on API Apps preview, we will provide migration guidance once the updated API Apps offering is available. While the existing code will largely work, customers will have to redeploy their apps already deployed with API Apps preview.
Easy to build your API
There are a number of turnkey features available for App Service-hosted APIs:
- Authentication: As mentioned above in the Mobile Apps section, authenticate both users and other services with built-in authentication. Token validation and user/service authentication happen in App Service before requests reach your code.
- CORS: Specify a whitelist of origins allowed to make cross-domain JavaScript requests to your API from browsers.
- API definition: Provide the endpoint of your Swagger 2.0 metadata, enabling downstream tools to discover it without prompting.
Easy to use your API
The above capabilities enable powerful consumption experiences:
- Flexible authentication options: Use either the identity provider’s native SDKs or the Mobile Apps SDK.
- SDK generation: Generate SDKs for your API using the Swagger API definition and built-in VS tooling. The code generator is also available on the command line and supports .NET, Node.js, Java, and more.
- Logic Apps: Call your APIs from Logic Apps. The Logic Apps HTTP connector natively supports service principal authentication, one of the built-in options in App Service authentication. An upcoming refresh to the connector will add Swagger support, making it especially seamless to connect to App Service-hosted API’s.
Easy to integrate API Management
Use Azure API Management and API Apps together for an end-to-end management, hosting and development experience for API’s. API Management composes neatly with App Service-hosted APIs and likewise supports Swagger 2.0.
The changes described to API Apps above will be made available live in the coming weeks.
Logic Apps updates
In early 2016, a number of new features are going to be introduced to Logic Apps to allow customers to be able to more easily orchestrate APIs and interactions with services. Logic apps continue to provide the full-fidelity experience you have today, but will be extended to better support any API endpoint that exposes Swagger metadata.
The best experience for custom APIs in logic apps is to host them as an App Service API App with the turnkey authentication enabled. However, this is no longer required, so you can also host a web API with any technology including Web Apps or Cloud Service Web Roles, and you will get the new, full-fidelity designer experience as long as you expose a swagger endpoint.
We will also be adding native support for API Management capabilities. This includes the ability to set throttles and API Management policies that can route and shape traffic to any backend API.
For example, if you have created a Contoso API and exposed swagger, its operations will automatically appear alongside all of the other services Logic apps can use (without any special configuration on your part):
Along with the improved support for custom APIs, and API management, we will be releasing other improvements to the logic apps designer, including:
- Full-text search across all individual API operations
- Includes both custom and built-in APIs
- Visual tokens to represent the outputs of APIs
- Highly sought after feature, you can now build messages and see what they will look like without having to understand the logic apps definition language
- Native Webhook support so you can design Logic apps that wait for input in the middle of the flow
- Helpful for approval scenarios. For example, you will be able to have a Logic app that sends an email to a manager for approval, and wait for the manager to approve before it continues to the next steps.
You can start using the updated versions of API Apps using the Logic app-built-in HTTP action starting in the coming weeks. You can also use the Logic app definition language directly to connect to your custom APIs. The improved experiences for Logic Apps described above will be available starting early next year.
Summary
Azure App Service is evolving in a meaningful way to make the repetitive tasks and extra configuration of applications unnecessary or as simple as possible in a reusable manner. As you can see above we working to make the features of App Service available to all the App types (Web, Mobile, API and Logic).
It’s an exciting time to work with the Azure Platform. Try App Service for free!