@loopback/docs
Version:
Documentation files rendered at [https://loopback.io](https://loopback.io)
57 lines (38 loc) • 1.6 kB
Markdown
---
lang: en
title: 'API docs: service-proxy.servicemixindoc.serviceprovider'
keywords: LoopBack 4.0, LoopBack 4, Node.js, TypeScript, OpenAPI
sidebar: lb4_sidebar
editurl: https://github.com/loopbackio/loopback-next/tree/master/packages/service-proxy
permalink: /doc/en/lb4/apidocs.service-proxy.servicemixindoc.serviceprovider.html
---
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) > [@loopback/service-proxy](./service-proxy.md) > [ServiceMixinDoc](./service-proxy.servicemixindoc.md) > [serviceProvider](./service-proxy.servicemixindoc.serviceprovider.md)
## ServiceMixinDoc.serviceProvider() method
Add a service to this application.
**Signature:**
```typescript
serviceProvider<S>(provider: Constructor<Provider<S>>): Binding<S>;
```
## Parameters
| Parameter | Type | Description |
| --- | --- | --- |
| provider | [Constructor](./context.constructor.md)<!-- --><[Provider](./context.provider.md)<!-- --><S>> | The service provider to register. |
**Returns:**
[Binding](./context.binding.md)<!-- --><S>
## Example
```ts
export interface GeocoderService {
geocode(address: string): Promise<GeoPoint[]>;
}
export class GeocoderServiceProvider implements Provider<GeocoderService> {
constructor(
@inject('datasources.geocoder')
protected dataSource: juggler.DataSource = new GeocoderDataSource(),
) {}
value(): Promise<GeocoderService> {
return getService(this.dataSource);
}
}
app.serviceProvider(GeocoderServiceProvider);
```