Files
spring-cloud-function/spring-cloud-function-samples/function-sample-azure-web

== Spring Azure Web Adapter Demo

A https://github.com/spring-cloud/spring-cloud-function/tree/main/spring-cloud-function-adapters/spring-cloud-function-adapter-azure-web[spring-cloud-function-adapter-azure-web] adapter sample.

This sample implements a standard Spring Boot Web application, with a REST API for managing a list of country entities. Later are persisted with JPA and H2 database.

The `spring-cloud-function-adapter-azure-web` adapter provides a light-weight Azure Function forwarding proxy which allows deploying the existing Spring Boot Web application as a Azure Function.

=== Usage

==== Build

[source,shell]
----
./mvnw clean install
----

==== Run Locally

[source,shell]
----
./mvnw azure-functions:run
----

Then use `curl` to interact with the rest application:

----
curl -X GET http://localhost:7072/api/AzureWebAdapter/
----

will output result like `Country Count: 0`.

Then add few Countries:
----
curl -X POST -H 'Content-Type:application/json' http://localhost:7072/api/AzureWebAdapter/countries -d '{"name" : "Bulgaria"}'
curl -X POST -H 'Content-Type:application/json' http://localhost:7072/api/AzureWebAdapter/countries -d '{"name" : "Netherlands"}'
curl -X POST -H 'Content-Type:application/json' http://localhost:7072/api/AzureWebAdapter/countries -d '{"name" : "Ukraine"}'
----

And check the count again:

----
curl -X GET http://localhost:7072/api/AzureWebAdapter/
----

now the output is `Country Count: 3` and `curl -X GET http://localhost:7072/api/AzureWebAdapter/countries` will output: `Countries: Country{id=1, name='Bulgaria'}Country{id=2, name='Netherlands'}Country{id=3, name='Ukraine'}`.

==== Running on Azure

Make sure you are logged in your Azure account.

----
az login
----

and deploy

----
./mvnw azure-functions:deploy
----