Forum Discussion
Swagger URL for PBI Report Server
- 8 years ago
If you just want the JSON file you can get it from SwaggerHub here:
https://app.swaggerhub.com/apis/microsoft-rs/PBIRS/2.0
In the top right you'll see an arrow pointing down, click that and you should see and option to download the JSON. I just noticed that there were some codegen customisations that we missed for PBIRS but added for SSRS which may be why your getting compilation errors, I just added them in I'll try it on my end to make sure it works. However if you still want to try the editor let me know if you see any issues.
Matt M.
OK, downloaded the JSON(resolved) and imported it into swagger editor online. All is fine. The generated client csharp. Opened it ind cmd and ran build.bat. The window is flooded by compile errors!
src\IO.Swagger\Model\Resource.cs(158,23): warning CS0108:
'IO.Swagger.Model.Resource.ContentType' hides inherited member
'IO.Swagger.Model.CatalogItem.ContentType'. Use the new keyword if
hiding was intended.
src\IO.Swagger\Model\CatalogItem.cs(158,23): (Location of symbol related to
previous warning)
src\IO.Swagger\Model\Resource.cs(165,23): warning CS0108:
'IO.Swagger.Model.Resource.Content' hides inherited member
'IO.Swagger.Model.CatalogItem.Content'. Use the new keyword if hiding
was intended.
src\IO.Swagger\Model\CatalogItem.cs(165,23): (Location of symbol related to
previous warning)
src\IO.Swagger\Model\Resource.cs(172,22): warning CS0108:
'IO.Swagger.Model.Resource.IsFavorite' hides inherited member
'IO.Swagger.Model.CatalogItem.IsFavorite'. Use the new keyword if hiding
was intended.
src\IO.Swagger\Model\CatalogItem.cs(172,22): (Location of symbol related to
previous warning)
src\IO.Swagger\Model\ResourceItem.cs(55,22): warning CS0108:
'IO.Swagger.Model.ResourceItem.Id' hides inherited member
'IO.Swagger.Model.ManifestItem.Id'. Use the new keyword if hiding was
intended.
src\IO.Swagger\Model\ManifestItem.cs(53,22): (Location of symbol related to
previous warning)
src\IO.Swagger\Model\ResourceItem.cs(62,23): warning CS0108:
'IO.Swagger.Model.ResourceItem.Path' hides inherited member
'IO.Swagger.Model.ManifestItem.Path'. Use the new keyword if hiding was
intended.
src\IO.Swagger\Model\ManifestItem.cs(60,23): (Location of symbol related to
previous warning)
src\IO.Swagger\Model\ResourceItem.cs(69,23): warning CS0108:
'IO.Swagger.Model.ResourceItem.Name' hides inherited member
'IO.Swagger.Model.ManifestItem.Name'. Use the new keyword if hiding was
intended.
src\IO.Swagger\Model\ManifestItem.cs(67,23): (Location of symbol related to
previous warning)
src\IO.Swagger\Model\ResourceItem.cs(76,23): warning CS0108:
'IO.Swagger.Model.ResourceItem.Hash' hides inherited member
'IO.Swagger.Model.ManifestItem.Hash'. Use the new keyword if hiding was
intended.
src\IO.Swagger\Model\ManifestItem.cs(74,23): (Location of symbol related to
previous warning)
src\IO.Swagger\Model\ThumbnailItem.cs(55,22): warning CS0108:
'IO.Swagger.Model.ThumbnailItem.Id' hides inherited member
'IO.Swagger.Model.ManifestItem.Id'. Use the new keyword if hiding was
intended.Am I using the wrong .Net version? I have installed Visual Studio 2017 so I guess I have the latest stable version of C#!?
I just tried it myself via the editor and everything compiled fine, however there were a lot of Warnings mostly because of the syntax that the generated code is using. The list that you show only contains Warnings, were you getting errors as well? Also it looks like the code that SwaggerHub generates doesn't compile most likely because they haven't aligned with the latest codegen tools I'll file a ticket with them and hopefully get it resolved.
- Anonymous8 years agoNot applicable
Youre right, it compiles in VS 2017. And running build.bat outputs the bin directory with some dlls. I guess I can use them even if there are lots of warnings. Do I need to use all of the dlls or just IO.Swagger.dll?
- StolzHerz8 years agoHelper I
Hi Martin
Could you successful use the generated API Client from Swagger HUB? Did you find source code examples for C# how to use the client?
I read the readme.md, could compile the "csharp-client-generated" Project (had to fixe some things there) but now I have no idea how to use the IO.Swagger and connect my PBI Report Server.
Greetings, Roli
- StolzHerz8 years agoHelper I
OK, here my experiences with the Swagger on 2018-02-03 (can vary if you do it after that date because of updates)
Create IO.Swagger Assembly
- Go to https://app.swaggerhub.com/apis/microsoft-rs/PBIRS/2.0
- Ignore Error Message on Website: "Semantic error at parameters.LargeFileMultipartFile"
- Download (green arrow on top right corner) the Client, csharp. Unzip it
- Open Solution IO.Swagger.sln (I use VS 2015)
- Note: There are missing references in both projects.
- In VS 2015, got to menu "Tools", "NuGet Package Manager", "Package Manager Console"
- There is a message "Some NuGet packages are missing from this solution". Click on "Restore". This donwloads the packages and adds the folder "packages" to your solution folder structure, containing "Newtonsoft.Json.10.0.3", "NUnit.2.6.4", "RestSharp.105.1.0"
- In the two projects, go to the missing references (RestSharp, nunit.framework) and set property "Copy Local = true"
- Build the solution with F6
- you get a lot of errors. Fix that:
- Error: "'xy.ToJson()': cannot override inherited member...". Declare methods as virtual so that they can be overridden:
- CatalogItem.ToJson():
- public virtual string ToJson()
ManifestItem.ToJson()
public virtual string ToJson()
- CatalogItem.ToJson():
- Error: "The name 'BaseValidate' does not exists in the current context"
- Outcomment all the mentioned methods in many classes:
- //IEnumerable<System.ComponentModel.DataAnnotations.ValidationResult> IValidatableObject.Validate(ValidationContext validationContext)
//{
// foreach(var x in BaseValidate(validationContext)) yield return x;
// yield break;
//}
- //IEnumerable<System.ComponentModel.DataAnnotations.ValidationResult> IValidatableObject.Validate(ValidationContext validationContext)
- Build the solution with F6
- successful
- Now build the solution like it is described in the README.md
- That gives you a folder "bin" in your soltion folder with 4 files:
- IO.Swagger.dll
- IO.Swagger.xml
- Newtonsoft.Json.dll
- RestSharp.dll
- That gives you a folder "bin" in your soltion folder with 4 files:
Use IO.Swagger Assembly in your Application
- Add referenced to this three dll files
- In your source code, do this (as example to get all Catalog Items):
- Add usings
using IO.Swagger.Api; using IO.Swagger.Client; using IO.Swagger.Model; using RestSharp;
- Code
var clientCI = new CatalogItemsApi(apiString); clientCI.Configuration.ApiClient.RestClient.Authenticator = new NtlmAuthenticator(CredentialCache.DefaultCredentials); ODataCatalogItems cItems = clientCI.GetCatalogItems();
Happy coding!
Roli