# Amorphie Standart Rest Servis Tanimlari
## Search for Entity
Tum entityler Backoffice uygulamasi ve ihtiyac duyan uygulamalar icin bir kayit arama servisi sunar.
* HTTP GET Methot olarak sunulur.
* **keyword** isminde query parameter ile full text indexlenmis tablo text verilerinde full text search yapmak icin kullanilir.
* Query string icerisinde rezerve edilmis parametre haricindeki tum parametreler filtre olarak kabul edilir.
* Filtreler degerleri {filtre-adi}={filtre-degeri} olarak Query string icerisine yerlestirilir.
* Filtreler birnden fazla degeri kabul eder. state=active&state=inProgress gibi.
* Tum referanslar(Foreign Key) ve enum degellerinin filtre olarak tanimlanmasi beklenir.
* Entity tarafindan desteklenen tum filtreler swagger icerisinde tanimlanir.
* Rezerve edilmis Query parametreleri;
* keyword: full text search icin kullanilir.
* page-size: donecek veri dizininin maksimum sayisini verir. Verilmedigi takdirde 20 kabul edilir.
* page: donecek veri dizin sayfasini belirler. Ilk sayfa indeksi sifirdir. Verilmedigi taktiderde 0 kabul edilir.
> GET https://api.burgan.com.tr/..../consent?keyword={keyword}&{filter1}={filter1Value}&{filter2}={filter2Value1}&{filter2}={filter2Value2}&page-size={pagesize}&page={page}
### Samples
> `Migros Kredi` kelimesi gecen mobile uyugulama icin olusturulmus ilk elli consenti getir.
> GET https://api.burgan.com.tr/..../consent?keyword=Migros%20kredi&client=mnobile&client=web&page-size=50&page=0
> Ahmet adli kullanicinin tum konstlerini doner.
> GET https://api.burgan.com.tr/..../consent?&user=ugur
## Update from Workflow
Her entity icin workflow tarafindan state degisimlerinde, degisikligi yansitacak bir servis cagrisi yapilmasi icin servis sunulur.
Bu cagrilacak Url kaydi amorphie.workflow icerisindeki State.Transition icerisinde tanımlanır.
```csharp
public class Transition : BaseDbEntityWithId
{
...
public string ServiceName { get; set; } = default!;
...
}
```
Her statu degisiminde ilgili entity icin tanimlanan POST methodu cagrilir.
> POST https://api.burgan.com.tr/..../consent
Cagri veri kumesinde entity verileri (workflow icerisinde gunllenmis olabilir) ve statu bilgisi gonderilir.
```json
{
"status": "waiting-approval",
"base-status": "new",
"record-id": "678fd5c7-5ab0-45b2-a38e-93fbe49f38bf",
"entityData": {
"reference": 38538734554,
"first-name": "Ahmet"
}
}
```
POST servisi gelen veri icerisindeki record-id li kaydin (kayit yoksa, yeni kayit yaratir) degisen entity-data verilerini ve statulerini gunceller.