https://github.com/vellt/network_helper_library
A NetworkHelper egy könyvtár, amely megkönnyíti a backend kommunikációt .NET Framework, C# projeketben.
https://github.com/vellt/network_helper_library
api-client backend http http-client networking request response rest-api
Last synced: about 1 year ago
JSON representation
A NetworkHelper egy könyvtár, amely megkönnyíti a backend kommunikációt .NET Framework, C# projeketben.
- Host: GitHub
- URL: https://github.com/vellt/network_helper_library
- Owner: vellt
- Created: 2024-01-17T14:56:02.000Z (about 2 years ago)
- Default Branch: master
- Last Pushed: 2024-09-10T19:50:49.000Z (over 1 year ago)
- Last Synced: 2025-03-17T01:45:54.851Z (about 1 year ago)
- Topics: api-client, backend, http, http-client, networking, request, response, rest-api
- Language: C#
- Homepage:
- Size: 6.22 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# NetworkHelper.dll
- **A NetworkHelper** egy .NET Framework és C# projektekhez készült könyvtár, amely megkönnyíti a backend kommunikációt. A könyvtár egyszerűsíti az HTTP kérések küldését és a JSON válaszok feldolgozását.
- **Verzió**: v0.1.3
- **Támogatott .NET Verziók**: .NET Framework 4.7.2 vagy újabb
### Első lépések
- **Könyvtár (DLL) letöltése**:
- Töltsd le a legújabb `NetworkHelper.dll` fájlt a [GitHub Releases](https://github.com/vellt/Network_helper_Library/releases) oldalról.
- **DLL hozzáadása a projektedhez**:
- Nyisd meg a Visual Studio-t és navigálj a **Solution Explorer** ablakhoz.
- Jobb klikk a **References** elemre, válaszd az **Add Reference** lehetőséget.
- A megjelenő ablakban kattints a **Browse...** gombra, és tallózd be a letöltött DLL fájlt.
- Ellenőrizd, hogy a DLL megjelent a **References** alatt.
---
### Backend Statikus Osztály Használata
A **Backend** statikus osztály segítségével könnyedén létrehozhatsz és küldhetsz HTTP kéréseket.
### Elérhető HTTP Metódusok
| Metódus | Leírás | Példa Használat |
| -------- | --------------------- | ------------------------------------- |
| `GET` | Adatok lekérése | `Backend.GET(url).Send()` |
| `POST` | Új adatok létrehozása | `Backend.POST(url).Body(body).Send()` |
| `PUT` | Adatok módosítása | `Backend.PUT(url).Body(body).Send()` |
| `DELETE` | Adatok törlése | `Backend.DELETE(url).Send()` |
---
### `GET` Kérés Kiépítése
```csharp
string url = "http://localhost:3000/students";
Response response = Backend.GET(url).Send();
```
---
### `POST` Kérés Kiépítése
Body felhasználása opcionális. Amennyiben nem szeretnél a body-ban adatot utaztatni, nem kötelező meghívni.
```csharp
string url = "http://localhost:3000/students";
Student student = new Student
{
phone = "12132",
name = "Sanyi",
email = "email"
};
Response response = Backend.POST(url).Body(student).Send();
```
---
### `PUT` Kérés Kiépítése
**Body-val történő Azonosítás**
A body felhasználása opcionális: ha nincs szükséged adatok küldésére, a body-t kihagyhatod.
```csharp
string url = "http://localhost:3000/students";
Student student = new Student
{
id = 11,
name = "Bela"
};
Response response = Backend.PUT(url).Body(student).Send();
```
> Anonim típussal (new { id = 11, name = "Bela" }) is dolgozhatunk adatküldéskor. A lényeg, hogy tartalmazza a szükséges tulajdonságokat (pl id, name):
> `Backend.PUT(url).Body(new { id = 11, name = "Bela"}).Send();`
**URL Paraméteres Azonosítás**
A body felhasználása opcionális: ha nincs szükséged adatok küldésére, a body-t kihagyhatod.
```csharp
string url = "http://localhost:3000/students/11";
Student student = new Student { name = "Bela" };
Response response = Backend.PUT(url).Body(student).Send();
```
---
### `DELETE` Kérés Kiépítése
**Body-val történő Azonosítás**
A body felhasználása opcionális: ha nincs szükséged adatok küldésére, a body-t kihagyhatod.
```csharp
string url = "http://localhost:3000/students";
Response response = Backend.DELETE(url)
.Body(new Student { id = 11 })
.Send();
```
> Anonim típussal (new { id = 11 }) is dolgozhatunk, azonosítás céljából. A lényeg, hogy tartalmazza a szükséges tulajdonságot (pl id):
> `Backend.DELETE(url).Body(new { id = 11 }).Send();`
**URL Paraméteres Azonosítás**
Az azonosítót az URL tartalmazza, nem szükséges a body láncolat.
```csharp
string url = "http://localhost:3000/students/11";
Response response = Backend.DELETE(url).Send();
```
---
### `Teljes` adatkinyerés a `Response`-ból
Deszerializálja a kiválasztott JSON adatot a megadott típusra.
**Server response:**
```json
[
{
"id": 1,
"nev": "Kiss Péter",
"osztaly": "9.A",
"szuletesi_datum": "2007-05-12"
},
{
"id": 2,
"nev": "Nagy Anna",
"osztaly": "10.B",
"szuletesi_datum": "2006-08-23"
}
]
```
**`As` Metódus:**
```csharp
List students = Backend.GET(url).Send().As>();
```
---
### `Részleges` adatkinyerés a `Response`-ból
Ezen metódusok segítik a komplex responseból való részleges adatfeldolgozást.
**Komplex server response:**
```json
{
"message": "Dolgozó sikeresen lekérve.",
"status": "success",
"data": {
"Az": 1,
"Nev": "Nagy József",
"Telepules": "Szolnok"
}
}
```
**`ValueAt` + `As` Metódus:** A `ValueAt` kiválaszt egy JSON értéket az adott **index** alapján.
```csharp
Response response = Backend.GET(url).Send();
string uzenet= response.ValueAt(0).As();
string status= response.ValueAt(1).As();
Dolgozo dolgozo= response.ValueAt(2).As();
```
**`ValueOf` + `As` Metódus:** A `ValueOf` kiválaszt egy JSON értéket a megadott **név** alapján.
```csharp
Response response = Backend.GET(url).Send();
string uzenet= response.ValueOf("message").As();
string status= response.ValueOf("status").As();
Dolgozo dolgozo= response.ValueOf("data").As();
```
---
### `ValueAt`- és `ValueOf`-ok egymásba ágyazása
Ezen metódusok egymásba ágyazása segíti a komplex responseból a mélyebb szintű részleges adatfeldolgozást. Akár kombinálhatjuk is őket (`ValueAt`-ra `ValueOf` vagy fordítva). Ezáltal csökkenteni tudjuk a deszerializálandó adatmennyiséget, így **erőforrást szabadíthatunk fel** projektünkben.
**Komplex server response:**
```json
{
"message": "Dolgozó sikeresen lekérve.",
"status": "success",
"data": {
"Az": 1,
"Nev": "Nagy József",
"Telepules": "Szolnok"
}
}
```
**A `Nev` érték kinyerése a `ValueAt`-al**
```csharp
string nev = Backend.GET(link).Send()
.ValueAt(2)
.ValueAt(1)
.As();
```
**A `Nev` érték kinyerése a `ValueOf`-al**
```csharp
string nev = Backend.GET(link).Send()
.ValueOf("data")
.ValueOf("Nev")
.As();
```
**A `Nev` érték kinyerése a `ValueAt` és `ValueOf`-al**
```csharp
string nev = Backend.GET(link).Send()
.ValueAt(2)
.ValueOf("Nev")
.As();
```
---
### Fájlfeltöltés
```csharp
Backend.UPLOAD(url).File(filePath).Send();
```
**Szerver válasz formátuma**: sikeres feltöltéskor visszatér a fájl nevével, a data tulajdonságba helyezve.
```json
{
"message": "Fájl sikeresen feltöltve.",
"status": "success",
"data": "3126503.png"
}
```
**Fájl feltöltése, válasz megjelenítése**
Fájl útvonálának kiválasztásához érdemes a OpenFileDialog-ot használni WPF esetében. A kódrészletben kiválasztom a képet, és útvonalát eltárolom a filePath változóban.
```csharp
OpenFileDialog openFileDialog = new OpenFileDialog
{
Filter = "Image Files (*.png;*.jpg;*.jpeg)|*.png;*.jpg;*.jpeg|All Files (*.*)|*.*"
};
if (openFileDialog.ShowDialog() == true)
{
string filePath = openFileDialog.FileName;
string url = "http://localhost:3000/upload";
Response response = Backend.UPLOAD(url).File(filePath).Send();
// megjelenítem a válaszüzenetet
MessageBox.Show(response.ValueOf("message").As());
}
```
---
### Forráskód
A teljes forráskód elérhető itt: [Backend.cs](https://github.com/vellt/Network_Helper_Library/blob/master/NetworkHelper/Backend.cs)
---
### Könyvtár szerkezete

---
Ez a dokumentáció biztosítja, hogy a NetworkHelper könyvtár használata egyszerű és érthető legyen. Ha bármilyen kérdésed van, vagy további segítségre van szükséged, ne habozz kapcsolatba lépni velem a [GitHub Issues](https://github.com/vellt/Network_helper_Library/issues) oldalon.
---
# [‼️ Mintaprojektért Kattints Ide ‼️](https://github.com/vellt/mintaprojekt_networkhelper)