2016-08-22 2 views
1

Ich habe ServiceStack seit v3 benutzen aber wurde weg von C# für eine Weile jetzt gezogen, in den Knoten zu graben, und Typoskript vor kurzem als Mittelweg :)Verwenden ServiceStack Typoskript-Client für nicht-servicestack Server

So, jetzt Ich habe dieses Projekt, wo ich diese massive REST-API verbrauchen muss, die auf Tastypie basiert, ich dachte zuerst, was auf der Seite von ServiceStack neu war und fand diese .

Das Problem besteht darin, wie Sie es ohne den Assistenten "Add a ServiceStack referenz ..." verwenden können.

Was ich tun möchte, ist einen Konverter von Tastypie Dokumentation zu ServiceStack dtos, Anfragen und Antworten zu schreiben, und dann den ServiceStack-Client mit diesen dtos verwenden. Ich bin ein wenig verloren zwischen der Typoskript-Definition und dem starken Typ-Client und ich kann kein vollständiges Beispiel für generierte Typescript-DTOs finden.

Gibt es eine Möglichkeit, zumindest routing (mit params), getippte Anfragen und Antworten zu haben?

Prost.

Antwort

0

ein TypeScript ServiceStack Reference Hinzufügen ist das gleiche wie jeder andere Add ServiceStack Reference Sprache, wo man nur die Lage der rechten Maustaste, wo Sie die DTOs wollen und gehen Sie zu Add > TypeScript Reference... im Kontextmenü geben Sie dann die BaseUrl zu einem Fern ServiceStack Instanz in der Dialog. Durch Klicken auf OK werden die generierten TypeScript-DTOs mit dem angegebenen Dateinamen zu Ihrem Projekt hinzugefügt. Die ServiceStackVS VS.NET Extension ermöglicht die Unterstützung von ServiceStack Reference in VS.NET, während die ServiceStackIDEA plugin Unterstützung für JetBrains IDEs hinzufügt, während http://gistlyn.com/add-servicestack-reference zeigt, wie Sie eine ServiceStack Referenz in Gistlyn eine Online C# Gist IDE hinzufügen können, die Sie C# -Skripts mit nur ausführen können Browser.

Sie können nur erzeugen typisierten DTOs für eine Remote-Instanz ServiceStack die von Ihrem C# DTOs transformiert und entwickelt mit ServiceStack die Nachricht-basierte APIs und vordefinierte Routen zu arbeiten. Es ist nicht etwas, das Sie verwenden können, um eine 3rd Party (Nicht-ServiceStack) API mit zu konsumieren. Wenn Sie nur die generierten DTO-Typen erstellen möchten, die Sie benötigen, um ein leeres ServiceStack-Projekt mit C# -DTOs zu erstellen, die der Drittanbieter-API entsprechen, und leere Service-Implementierungen (z. B. NotImplementedExceptions), können Sie auf die TypeScript-DTOs von /types/typescript zugreifen.

+0

Mythz Sie werden mich immer mit Ihren Antworten überraschen .. Ok, also eine Möglichkeit, ServiceStack Typescript-Client für einen REST-API-Server von Drittanbietern zu verwenden, wäre ein aC# -Projekt zu erstellen, DTOs aus API Doc zu generieren und dann einen dummen Server auszuführen und bekomme die TypeScript-DTOs daraus ... kann ich nicht versuchen, diese Typescript-DTOs direkt aus dem Tastypie doc zu generieren? Ich bin nur hier zu erkunden, im Grunde versuchen, wie in C# zu tun: mit ServiceStack-Client und DTO-basierte Architektur, um 3rdParty APIs zu konsumieren .. – baramuse

+0

@baramuse Scheint, wie Sie 3rd Party API mit ihren Tastypie Docs aufrufen möchten, so dass ich nicht ' t sehen, wo Sie ServiceStack für hier verwenden würden? ServiceStack generiert typisierte DTOs in verschiedenen Sprachen für den ** Aufruf von ServiceStack Services **, wenn Sie keinen ServiceStack Service aufrufen, dann würde ich nur verwenden, was auch immer ihre Empfehlung zum Aufruf ihrer 3rd Party API ist. Das Beste, was Sie tun können, ist ein leeres ServiceStack-Projekt mit C# -DTOs in der gleichen Form wie die 3rd Party API zu erstellen, mit dem Sie TypeScript-DTOs erzeugen können, aber Sie müssen noch mit dem Erstellen von 3rd-Party-Routes usw. fertig werden. – mythz

+1

es ist nur das Früher habe ich ServiceStack.Client als Standard-REST-API-Client in C# verwendet (zum Beispiel über RESTSharp), weil mir die Art und Weise gefiel, wie ich POCO-DTOs nur definieren musste, um Requests, Responses und Routes zu beschreiben. Ich dachte, ich könnte das gleiche mit dem ServiceStack Typescript-Client tun. Ich denke, ich muss dann eins schreiben :) – baramuse

Verwandte Themen