10. Juli 2014
C# – AMAGNO API Tutorial
Ziel des Tutorials
In diesem Tutorial wird ein einfacher Windows Client mit Hilfe von C# entwickelt, mit welchem über die AMAGNO Api eine Suche nach Dokumenten ausgeführt und die gefundenen Dokumente heruntergeladen werden können.
Systemvoraussetzungen
- AMAGNO ab Version 4.7
Ihr Kenntnisstand
- C# Kenntnisse
Verwendete Werkzeuge
Tutorialvideo
Tutorial
Projektbeschreibung
Wir werden einen einfachen amagno Windows Client entwickeln. Dieser Client wird nach Dokumenten suchen und gefundene Dokumente herunterladen können. Für die Entwicklung werden wir die Entwicklungsumgebung Microsoft Visual Studio 2013 und die Programmiersprache C# verwenden.
Vorbereitung
Zu Beginn laden wir die amagno API herunter. Dieses Assembly beinhaltet alle von der API verwendeten Klassen und kann zum De-serialisieren der JSON-Objekte genutzt werden. Danach erstellen wir ein neues Windows Forms Projekt und füge das Assembly als Referenz hinzu.
Für die Kommunikation mit dem REST-Service werden die RestSharp verwendet. Um die daraus entstehenden Daten zu de-serialisieren, werden wir Json.NET benutzen. Diese beiden Komponenten fügen wir über den NuGet package manager hinzu.
Realisierung
Wir positionieren eine Textbox (searchTextBox) für den Suchbegriff, eine ListView (listView1) für die Anzeige der Suchergebnisse und zwei Buttons (SearchBtn und DownloadBtn) für das Auslösen der Suche und den Download auf der Form. In dem Click-Event des 1. Buttons (SearchBtnClick) lösen wir die Suche aus.
private void SearchBtnClick(object sender, EventArgs e)
{
listView1.Items.Clear();
var client = new RestClient(„http://localhost/amagnome/api“)
{
Authenticator = new HttpBasicAuthenticator(„hw@amagno.me“, „hannes“)
};
var request = new RestRequest(„content/search“);
request.AddParameter(„searchstring“, searchTextBox.Text);
var resp = client.Execute(request);
var contents = JsonConvert.DeserializeObject<AmagnoContentResponse[]>(resp.Content);
foreach (var content in contents)
{
var item = new ListViewItem(content.Name) { Tag = content };
item.SubItems.Add(content.FileCreateDate);
item.SubItems.Add(content.FileChangeDate);
listView1.Items.Add(item);
}
}
Wir verändern die Property „View“ des ListView-Controls auf „Details“, damit, neben dem Namen des Dokumentes, auch das Erstellungsdatum und das Änderungsdatum angezeigt wird. In dem Click-Event des 2. Buttons (DownloadBtnClick) entwickeln wir nun den Download des im ListView selektierten Dokumentes.
private void DownloadBtnClick(object sender, EventArgs e)
{
AmagnoContentResponse content;
if (listView1.SelectedItems.Count != 1 ||
(content = listView1.SelectedItems[0].Tag as AmagnoContentResponse) == null) return;
using (var dlg = new FolderBrowserDialog())
{
if (dlg.ShowDialog() != DialogResult.OK) return;
var client = new RestClient(„http://localhost/amagnome/api“)
{
Authenticator = new HttpBasicAuthenticator(„hw@amagno.me“, „hannes“)
};
var request = new RestRequest(„content/{id}/originalformat“);
request.AddUrlSegment(„id“, content.Id.ToString());
var response = client.Execute(request);
if (response.StatusCode == HttpStatusCode.OK)
File.WriteAllBytes(Path.Combine(dlg.SelectedPath, content.Name), response.RawBytes);
}
}
Fazit
Wir haben nun innerhalb von wenigen Minuten, einen simplen Windows Client für amagno entwickelt, mit dem nach Dokumenten gesucht werden kann. Ebenfalls ist der Download der Dokumente im Originalformat möglich.
AMAGNO NEWSLETTER
DIE BESTEN NEWS DIREKT INS POSTFACH!
AMAGNO NEWSLETTER
DIE BESTEN NEWS DIREKT INS POSTFACH.