# Using Standard Visual Studio Web API Template

Configure FlexReport Web API using standard Visual Studio Template for Web API. Learn more about configuring FlexReport Web API in MVC documentation.

## Content

Complete the following steps to configure FlexReport Web API using standard Visual Studio Template for Web API:

### Configure Web API Project

Complete the following steps to configure Web API project:

1. Create a new ASP.NET Web API Project.
2. Add the FlexReport Web API package from NuGet Package Manager.
<br>
    If you have installed MVC Edition, the MESCIUS NuGet source path gets already set inside Visual Studio.
<br>
    ![Add MESCIUS NuGet source path in NuGet Package Manager](https://cdn.mescius.io/document-site-files/images/2b3ac322-100e-4637-958d-fb40dcda3f44/images/addpkgsrc.png)
<br>
    Alternatively, you can manually add the source path from **NuGet Package Manager** \| **Package Sources** option available in **Options** dialog box, which appears on selecting **Tool** \| **NuGet Package Manager** \| **Package Manager Settings**.
    In the NuGet package manager the Report Service is listed as shown in the following image:
<br>
    ![NuGet Package Manager](https://cdn.mescius.io/document-site-files/images/2b3ac322-100e-4637-958d-fb40dcda3f44/images/nugetpkgreportservice.png)
<br>
    FlexReport Web API adds the following references to the project:
<br>
    ![FlexReport Web API references](https://cdn.mescius.io/document-site-files/images/2b3ac322-100e-4637-958d-fb40dcda3f44/images/reportwebapiref.png)
3. License your Web API application. Create a **licenses.licx** file within Properties folder of your application and add the following code in it:

    ```LICENSES.LICX
    C1.Web.Api.LicenseDetector, C1.Web.Api
    ```

<br>

### Add Report files to the Project

1. Create a folder named **Files** in your application.
2. Add the FlexReport Definition file to it.
<br>
    If the report is using any local database (such as MDB or MDF files), then add the database file to the **App\_Data** folder of your project. However, make sure that the connection string of the reports are pointing to the App\_Data folder accordingly.
<br>
    ![](https://cdn.mescius.io/document-site-files/images/2b3ac322-100e-4637-958d-fb40dcda3f44/images/flexreportdatasource.png)

### Set Report's Root Location and Use C1 Web APIs

1. Open the **Startup.cs** file and add the following code to Configuration method:

    ```csharp
    public void Configuration(IAppBuilder app)
    {
        app.UseCors(CorsOptions.AllowAll);
        var folder = GetFullRoot("Files");
        app.AddDiskStorage("root", folder);
        ConfigureAuth(app);
    }
    ```

<br>
>type=note
> **Note**: Make sure you add **Microsoft.Owin.Cors** Nuget package in your application, for app.UseCors();
2. Add the following GetFullRoot function in the startup class.

    ```csharp
    private static string GetFullRoot(string root)
            {
                    var applicationBase = AppDomain.CurrentDomain.SetupInformation.ApplicationBase;
                    var fullRoot = Path.GetFullPath(Path.Combine(applicationBase, root));
                    if (!fullRoot.EndsWith(Path.DirectorySeparatorChar.ToString(), StringComparison.Ordinal))
            {
                            fullRoot += Path.DirectorySeparatorChar;
            }
                    return fullRoot;
            }
    ```
3. Open Web.Config and add the following entry under handlers inside system.webServer Node.

    ```xml
    <add name="ExtensionlessUrlHandler-Integrated-4.0" path="api/*" verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
    ```

### Deploy FlexReport Web API Service

1. Compile the Project.
2. Deploy the project to IIS. The Web API URL, for service hosted on local IIS, will be created.

>type=note
> **Note**: Once you have successfully created **Web API URL** for Report Services, you can access and view reports stored in the service using FlexViewer for MVC and Wijmo Viewer. For more information on how to view reports, see [Viewing Reports in FlexViewer](/componentone/docs/mvc/online-mvc/workwithcontrols/FlexReportViewer/FlexViewer/ViewingReportsinFlexViewer).