# Using Standard Visual Studio Web API Template

## 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 MESCIUS NuGet.<br /><br />If you have installed MVC Edition, the MESCIUS NuGet source path gets already set inside Visual Studio.<br /><br />![](https://cdn.mescius.io/document-site-files/images/9b6a6cfe-b8e8-42e9-8a04-da6cb7762977/images/addpkgsrc.png)<br /><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**.<br />In the NuGet package manager the Report Service is listed as shown in the following image:<br /><br />![](https://cdn.mescius.io/document-site-files/images/9b6a6cfe-b8e8-42e9-8a04-da6cb7762977/images/nugetpkgreportservice.png)<br /><br />FlexReport Web API adds the following references to the project:<br /><br />![](https://cdn.mescius.io/document-site-files/images/9b6a6cfe-b8e8-42e9-8a04-da6cb7762977/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:<br />
    
    ```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 /><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 /><br />![](https://cdn.mescius.io/document-site-files/images/9b6a6cfe-b8e8-42e9-8a04-da6cb7762977/images/flexreportdatasource.png)<br />

### 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 /><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 smilar to http://localhost/FlexReportwebAPI/api/report.


> 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-core/WorkingwithControls/FlexViewer/ReportViewer/Manually-Configuring-ReportViewer).