# Rotalar

## Rota Nedir?

**Routing**, request işlemlerinde kullanılabilecek, karmaşık kuralları kolaylıkla yönetebilme özelliği (GET, POST gibi HTTP methods, middleware gibi) ile öne çıkar. Routing işleminde işlemler route’lar (path) üzerinden yürütülür. Bu sayede URL eşleştirme işlemleri farklı amaçlarla gerçekleştirilebilmektedir. Bu işlem farklı bir şekilde ele alınsa da (client request) kullanıcılar/ziyaretçiler ve arama motorları URL’lerdeki gibi web sitesinde ve/veya uygulamasında anlamlı sonuçlara (endpoint) ulaşabilirler. Örneğin, `/inbox/1/msg/2` gibi bir URL’de ilk path `/inbox` sonrası ise bu path’in iç yapıları olarak (routing tree) nitelendirilebilirler.

Biz Liman içerisinde rota işlemlerine bu kadar karmaşık yaklaşmıyoruz. Gelin nasıl incelediğimize bakalım.

## Eklentilerde Rotalar

Biz eklentilerde rotalara daha çok REST mantığıyla baktığımızdan ve kod karmaşıklığını düşürmek istediğimizden Laravel'deki gibi kodu uzatmamaktayız.&#x20;

Liman eklentilerinde rotalar sadece iki argüman alır.&#x20;

* Endpoint
* Kontrolcü ismi @ Çağırılacak fonksiyon

Gelin örnek bir rota dosyasını inceleyelim.

{% code title="routes.php" %}

```php
return [
    "index" => "HomeController@index",
    
    // Hostname Settings
    "get_hostname" => "HostnameController@get",
    "set_hostname" => "HostnameController@set",

    // Systeminfo
    "get_system_info" => "SystemInfoController@get",
    "install_lshw" => "SystemInfoController@install",
];
```

{% endcode %}

Görüleceği üzere eklenti rotalarımız POST, GET, PUT, DELETE... gibi argümanlar almamaktadır. Eklentilerde kontrolcüleri API mantığı ile kullandığımız için ihtiyaç duymadık.

Bir rota tanımlamak için aşağıdaki gibi bir tanımlama yapmanız gerekmektedir.

```php
    "<ROTA_ISMI>" => "<CONTROLLER_ISMI>@<CAGIRILACAK_FONKSIYON>"
```

Yukarıdaki tarzda tanımlama yaptığınızda bunu Javascript yardımcı fonksiyonlarımızdan request ile API("\<ROTA\_ISMI>") şeklinde çağırabilir. Bu çağrıdan sonra sorunsuz şekilde response alacaksınız ve bunu Javascript ile kullanarak ister bir içeriği manipüle edebilir, ister başka bir içerik oluşturabilirsiniz.

{% content-ref url="yardimci-fonksiyonlar" %}
[yardimci-fonksiyonlar](https://docs.liman.dev/eklenti-gelistirme/genel-bilgiler/yardimci-fonksiyonlar)
{% endcontent-ref %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.liman.dev/eklenti-gelistirme/genel-bilgiler/rotalar.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
