W ASPNET Core 1.0 podejście (przynajmniej teraz może się zmienić) polega na użyciu Swagger do wygenerowania dokumentacji REST API, a kiedy to zrobisz, możesz użyć AutoRest, aby automatycznie wygenerować klienta w kilku językach.
Aby korzystać Swagger w rdzeniu aplikacji, dodać w pliku projects.json
:
"dependencies": {
...
"Swashbuckle": "6.0.0-rc1-final"
},
Następnie w pliku Startup.cs można dodać inicjalizacji:
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
//other uses
//this generates the swagger.json file
app.UseSwaggerGen();
//this is optional, it will generate a visual website for your documentation
app.UseSwaggerUi();
}
UseSwaggerUi
będzie generował Adres URL z treścią "czytelną dla człowieka" w http://yourdomain/swagger/ui/index.html
. UseSwaggerGen
wygeneruje plik swagger.json
w: http://yourdomain/swagger/v1/swagger.json
.
Wreszcie, trzeba ozdobić swoje metody powiedzieć Swagger jaką Output Czy oni oferują (wejście jest automatycznie wykrywany), dodając coś takiego:
[Produces(typeof(MyItemClass))]
[SwaggerResponse(System.Net.HttpStatusCode.OK, Type = typeof(MyItemClass))]
[HttpGet("{id}")]
public IActionResult Get(string id)
{
if (string.IsNullOrEmpty(id))
{
return HttpBadRequest();
}
var item = _service.GetRecord(id);
if (item == null)
{
return HttpNotFound();
}
return new ObjectResult(item);
}
Nadzieja pomaga wyczyszczenie rzeczy.
UPDATE: Aby wygenerować klientowi AutoRest prostu przejść do wiersza polecenia (z zainstalowanym AutoRest) i przejdź do folderu projektu, a następnie wpisz:
autorest -Namespace YourDesiredNamespace -Input http://yourapi/swagger/v1/swagger.json
Spowoduje to utworzenie "generated" Folder wewnątrz twojego projektu ze wszystkimi plikami i klasą proxy możesz nawet użyć w pliku Startup.cs i zdefiniować Dependency Injection.
public void ConfigureServices(IServiceCollection services)
{
//....
services.AddSingleton<IYourApi>(provider =>
{
return new YourAPI(new Uri("http://yourapi"));
});
}
To nie będzie odpowiedź na twoje pytanie, ale powinieneś rzucić okiem na AutoRest. –