5th chunk of `content/manuals/extensions/extensions-sdk/build/backend-extension-tutorial.md`
b23ccb24c912714808396e5a63aa45bf6f0990fba1de6df70000000100000bf7
Using the [advanced frontend extension example](frontend-extension-tutorial.md), we can invoke our extension backend.
Use the Docker Desktop Client object and then invoke the `/hello` route from the backend service with `ddClient.
extension.vm.service.get` that returns the body of the response.
{{< tabs group="framework" >}}
{{< tab name="React" >}}
Replace the `ui/src/App.tsx` file with the following code:
```tsx
// ui/src/App.tsx
import React, { useEffect } from 'react';
import { createDockerDesktopClient } from "@docker/extension-api-client";
//obtain docker desktop extension client
const ddClient = createDockerDesktopClient();
export function App() {
const ddClient = createDockerDesktopClient();
const [hello, setHello] = useState<string>();
useEffect(() => {
const getHello = async () => {
const result = await ddClient.extension.vm?.service?.get('/hello');
setHello(JSON.stringify(result));
}
getHello()
}, []);
return (
<Typography>{hello}</Typography>
);
}
```
{{< /tab >}}
{{< tab name="Vue" >}}
> [!IMPORTANT]
>
> We don't have an example for Vue yet. [Fill out the form](https://docs.google.com/forms/d/e/1FAIpQLSdxJDGFJl5oJ06rG7uqtw1rsSBZpUhv_s9HHtw80cytkh2X-Q/viewform?usp=pp_url&entry.1333218187=Vue)
> and let us know if you'd like a sample with Vue.
{{< /tab >}}
{{< tab name="Angular" >}}
> [!IMPORTANT]
>
> We don't have an example for Angular yet. [Fill out the form](https://docs.google.com/forms/d/e/1FAIpQLSdxJDGFJl5oJ06rG7uqtw1rsSBZpUhv_s9HHtw80cytkh2X-Q/viewform?usp=pp_url&entry.1333218187=Angular)
> and let us know if you'd like a sample with Angular.
{{< /tab >}}
{{< tab name="Svelte" >}}
> [!IMPORTANT]
>
> We don't have an example for Svelte yet. [Fill out the form](https://docs.google.com/forms/d/e/1FAIpQLSdxJDGFJl5oJ06rG7uqtw1rsSBZpUhv_s9HHtw80cytkh2X-Q/viewform?usp=pp_url&entry.1333218187=Svelte)
> and let us know if you'd like a sample with Svelte.
{{< /tab >}}
{{< /tabs >}}
## Re-build the extension and update it
Since you have modified the configuration of the extension and added a stage in the Dockerfile, you must re-build the extension.
```bash
docker build --tag=awesome-inc/my-extension:latest .
```
Once built, you need to update it, or install it if you haven't already done so.
```bash
docker extension update awesome-inc/my-extension:latest
```
Now you can see the backend service running in the **Containers** view of the Docker Desktop Dashboard and watch the logs when you need to debug it.
> [!TIP]
>
> You may need to turn on the **Show system containers** option in **Settings** to see the backend container running.
> See [Show extension containers](../dev/test-debug.md#show-the-extension-containers) for more information.
Open the Docker Desktop Dashboard and select the **Containers** tab. You should see the response from the backend service
call displayed.
## What's next?
- Learn how to [share and publish your extension](../extensions/_index.md).
- Learn more about extensions [architecture](../architecture/_index.md).