> For the complete documentation index, see [llms.txt](https://abi.gitbook.io/net-core/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://abi.gitbook.io/net-core/6.2-configurar-tus-servicios-con-odata/6.2.8-configurando-odata-en-el-archivo-startup.cs.md).

# 7.1.7 Configurar y probar los servicios con OData

En nuestro archivo **Startup.cs** en el método **ConfigureServices** agregamos el siguiente código para configurar OData

{% code title="Startup.cs" %}

```csharp
public void ConfigureServices(IServiceCollection services)
{
    services.AddControllers().AddOData(opt => 
                  opt.AddRouteComponents("odata", GetEdmModel()));
}
```

{% endcode %}

Vamos a registrar las rutas mediante las cuales van a ser accesados nuestros servicios, nuevamente en nuestro archivo **Startup** ahora en el método **Configure** agregamos la ruta odata para todos los modelos que registremos como EDM. Permitimos también que los servicios permitan filtrado, order by, seleccionar solamente unos campos

```csharp
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
     app.UseEndpoints(endpoints =>
     {
          endpoints.MapControllers();
     }); 
}
```

Vamos a probar con postman los metadatos de nuestro servicio GET <http://localhost:50685/odata/$metadata>&#x20;

![](https://3731331968-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LKmGSg4qhizjqeDPHJC%2F-LZhAVziAcCZN6ZkxUTR%2F-LZhE6GacHKXZ8qav85U%2Fimage.png?alt=media\&token=e5357ccc-7e36-4e81-a707-c2d06710cbb4)

Te regresa un xml con los servicios disponibles y la información del json a regresar.

Puedes probar con postman y puedes observar que regresa un json con lo siguiente:

* @odata.context: Regresa el link del servicio para obtener mas información del servicio.
* value: Regresa los clientes de acuerdo a los atributos de página.
* @odata.nextLink: Regresa el link para obtener los siguientes clientes. Ejemplo: <http://localhost:5000/odata/Clientes?$skip=10> el cual regresará los siguientes clientes.

![](https://3731331968-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LKmGSg4qhizjqeDPHJC%2F-MZzXcfMFFiR9CAutTPa%2F-MZz_rQO_zDnHLkxwAvo%2Fimage.png?alt=media\&token=9198fca7-ff03-4f73-a4cd-3410ff082969)

Puedes agregar otra de las funciones oData para filtrar o seleccionar solo algunos campos y ordenar los registros

```csharp
{{BaseURL}}/odata/Clientes?$select=Clave,RazonSocial,Activo
&$filter=Activo eq true&$count=true&
$orderby=RazonSocial desc&$top=5
```

De esta forma obtienes:

* Solamente los campos Clave, RazonSocial y Activo.
* Filtras para mostrar solo los clientes activos.
* Incluyes el total de registros en la respuesta del servicio.
* Ordenas por el campo RazonSocial de forma descendente.
* Obtienes los primeros 5 renglones.

![](https://3731331968-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LKmGSg4qhizjqeDPHJC%2F-M_3iWUF0avn6__DA9GC%2F-M_3keCWNIAxWoIPyC-H%2Fimage.png?alt=media\&token=a2a004c2-32df-4eb8-a308-bd0ff09eeeb4)
