chrisproud
Goto Top

Welche Programmiersprache für REST-API Tool?

Hallo zusammen,

ich möchte mir gerne eine möglichst einfache aber vielseitig verwendbare Programmiersprache aneignen.
Aktuell habe ich nur oberflächliche Kenntnisse in Webentwicklung (html, php, css, ...) und klassichem PowerShell & Batch gespiele.

Ziel Aktuell (API-Tool):
  • Einfaches UI (4-6 Buttons, Liste mit Checkboxen, Eingabemöglichkeit von Zugangsdaten / API-Keys)
  • Windows only (wenn macOS auch geht ist nicht wild, wird aber nicht benötigt)
  • Soll Daten wie folgt abrufen, zwischenspeichern (temporär), verarbeiten und absenden

Ablauf (der sich natürlich bei der Durchführung noch ändern oder erweitern kann):
  • Abruf der offenen und noch abzurechnenden Zeiten via API von unserer Zeiterfassungslösung (clockodo).
  • Zeiten aus Ticketsystem abrufen. (aktuell noch nicht im Einsatz, wäre aber eine mögliche Erweiterung des Tools in ein paar Monaten)
  • Abruf der Kunden aus unserem ERP System via API (lexoffice).
  • Tool speichert die Zeiten zwischen, sortiert nach Kunden und gleicht die Kundennummern (gemeinsamer Nenner, synchron in beiden Systemen) mit dem ERP ab.
  • Die Einträge werden wieder via API pro Kunde an das ERP gesendet und eine Rechnung als Entwurf erstellt.
  • Wenn kein Fehler in der Folge, abgerufene Zeiten als abgerechnet markieren.

Ich weiß, es ist sicher ein bisschen Arbeit und wird keine 2-Wochen Aktion, würde mir aber grundsätzlich sehr gerne gewissen Grundkenntnisse in Softwareprogrammierung aneignen.

Im weiteren Schritt sollte ich die Sprache auch verwenden können um beispielsweise kleine Startup-Scripte oder Bereitstellungs-Tools zu schreiben, eben ein verlängerter Arm der Batch mit ggf. einigermaßen schickem UI.

Hoffe ich habe hier keine Ratgeber übersehen, habe aber zu den Anforderungen in der sufu nichts aktuelles gefunden.

Danke euch und wünsche allen ein schönes, sonniges Wochenende!

Chris

Content-ID: 657007

Url: https://administrator.de/contentid/657007

Printed on: December 3, 2024 at 11:12 o'clock

tikayevent
tikayevent Feb 27, 2021 updated at 11:37:29 (UTC)
Goto Top
Am Ende ist eine Programmiersprache nur ein Werkzeug, die Logik dahinter ist wichtiger und ist mit so ziemlich jeder Programmiersprache realisierbar. Da du Kenntnisse in PHP hast, könnte man diese weiternutzen und es als Webanwendung laufen lassen, aber PHP hat eine sehr starke Ähnlichkeiten zu Java und C#. Da ich persönlich so meine Probleme mit Java habe, was das JRE/JDK angeht, würde ich eher zu C# raten, basierend auf .net Core.

Meine meine C#-Entwicklungen lasse ich größtenteils auf Windows, aber auch auf Linux (ohne GUI) und iOS laufen. Teilweise sind es betriebskritische Anwendungen, deren Ausfall große Probleme verursachen würden.
StefanKittel
StefanKittel Feb 27, 2021 updated at 11:57:32 (UTC)
Goto Top
Hallo,

meiner Meinung nach ist nicht die Sprache sonder die Entwicklungsumgebung nicht das Problem.

Wenn ich eine kleine Web-Anwendung mit API und Datenbank mit einem C# Programm mit Visual Studio unter Windows vergleiche sind das Welten.

Für das Windows-Programm brauche ich 30-60 Minuten bis die UI-Logik funktioniert und ich mit der eigentlichen Anwendung anfangen kann. Bei der Web-Geschichte dauert das viel länger.

Dazu kommt, dass man mit verschiedenen Sprachen zu tun hat.
Das ist immer mindestens HTML für die UI (mit lustig CSS) und Javascript für die Oberfläche.
Dazu dann die Sprache im Backend für die Logik und API.

Und einfach F5 zum debuggend drücken geht hier auch nicht.
Da braucht man dass wieder einen Browser mit Anbindung an XDebug oder ähnliches.
Meist verwende ich Breakpoints mit Spezial-Ausgabe oder Ausgabe in debug-Dateien auf dem Server.

Ich finde es sehr nervig.

btw. Django soll toll sein

Stefan
maretz
maretz Feb 27, 2021 at 12:06:05 (UTC)
Goto Top
Die Sprache is völlig egal - dafür sind es ja genormte Schnittstellen die du mit allem was so geht bedienen kannst... Ich persönlich verwende z.B. Java weils für mich am bequemsten ist -> und dabei gibt es einige Vor- wie auch Nachteile... Der nächste nimmt halt lieber C#, PHP oder von mir aus auch Perl / PHP / Python / Basic.. Alles davon (ok, Basic mal ausgenommen) hat seine Vor- und Nachteile.

Viel wichtiger ist jedoch ob du überhaupt an die Fremdsysteme immer so rankommst da nich jeder dir direkt nen Zugang zur API gibt, geben will oder geben kann. Generell sollte so ein Tool wie du beschreibst aber keine grosse Hürde sein sofern eben die APIs auf beiden Seiten bekannt sind.
chrisproud
chrisproud Feb 27, 2021 at 12:08:11 (UTC)
Goto Top
Danke euch beiden!

Denke eine Webanwendung ist in meinem Fall nicht das richtige, wie auch du Stefan schon angesprochen hast.
Ich möchte das "Tool" ja möglichst ohne großes Setup (Webserver) oder Einrichtung auch variabel beispielsweise vom Netzlaufwerk auf verschiedenen Rechnern starten können, ohne jedoch aber einen Webserver bereitstellen und pflegen zu müssen.

Ich schau mir mal C# näher an, was ich in der Kürze darüber so erfahren konnte, klingt vielversprechend.
Würde es dann mit einem WPF UI verwenden, oder habt ihr andere Vorschläge?

Was haltet ihr von den Alternativen, über die man so täglich stolpert, wie Python?
chrisproud
chrisproud Feb 27, 2021 at 12:12:50 (UTC)
Goto Top
Korrigiere auf "Danke euch drei" face-smile

Die Anwendungen haben wir schon so rausgesucht, dass sie möglichst offene Schnittstellen haben.
Grundsätzlich hat clockodo (Zeiterfassung) auch eine direkte Verbindung zu lexoffice (ERP), allerdings muss man hier jede Kunden-Abrechnung händisch anstoßen, was bei einem wachsenden Kundenstamm immer mehr Zeitaufwand bedeutet.
Ebenso ist eine Integration eines kommenden Ticket-Systems in beiden Systemen nicht möglich.

Falls es zur Einschätzung jemanden interessiert, es gibt sehr gute Dokus zu den beiden APIs:
https://developers.lexoffice.io/docs/#lexoffice-api-documentation
https://www.clockodo.com/de/api/
maretz
maretz Feb 27, 2021 at 13:20:22 (UTC)
Goto Top
Also - nochmal -> die SPRACHE is erst mal egal... eine Einrichtung hast du nahezu immer:
-> Webbasiert: Du musst halt irgendwo nen Webserver hinpacken
-> Java: Du musst nen (Open-)JDK auf den Arbeitsstationen haben
-> C#: Ggf. musst du irgendwelche .Net-Frameworks auf den Stationen haben
-> Python/Perl/... -> dafür brauchst du halt auch den Interpreter auf dem Rechner

Auch da kommt es eher darauf an wieviel Aufwand es dir Wert ist und wieviel Arbeit es spart. Davon macht man üblicherweise abhängig wieviel man in die Entwicklung steckt.
Lochkartenstanzer
Lochkartenstanzer Feb 27, 2021 updated at 16:01:53 (UTC)
Goto Top
Moin,

eindeutig Assembler und Maschinencode. Schlank, funktional, platzsparend. face-smile

lks

PS: Bei so einer Frage kann man mit jeder Programmiersprache antworten. Es hängt im wesentlichen von den Bibliotheken ab, die Die verwenden willst und deren APIs, welche Sprachen besser als andere geeignet sind.