Openlayers 3 Harita Görünüm Özellikleri

7 Tem

Openlayers3 uygulamalarında, harita görünümü ile ilgili özellikler ol.View nesnesi ile belirlenir. Bu yazıda ol.View ile ilgili birkaç ipucundan bahsedilmiştir.

Bir haritanın belirli iki zoom seviyesinden dışarı çıkmaması için;

   map.setView(
         new ol.View({
             minZoom:1, 
             maxZoom:10
         })
   );

Bir haritanın belirli iki resolution seviyesinden dışarı çıkmaması için;

   map.setView(
          new ol.View({
               minResolution:1, 
               maxResolution:190
         })
   );

Eğer bir katmanın belirli bir çözünürlük aralığı dışında görünmesini istiyorsanız görünüm özelliklerinin katman üzerinde belirlenmesi gerekmektedir.

    var layer = new ol.layer.Tile({
           minResolution:4, 
           maxResolution:70
    });

Bu şekilde atarlanan katmanlarda zoom seviyeniz 3 olduğunda katman görünmez hale gelir. Yani k atmandaki minResolution ve maxResolution özellikleri katmanın visible özelliğini değiştirir.

Bu yazıda bahsedilen özellikler Openlayers V.4.0.1 üzerinde denenmiştir.

Spatial WFS ve WMS Sorgularda SRS ve BBOX Kullanımı

27 Oca

Bu yazıda, OGC tarafından belirlenmiş standartlar olan WMS veya WFS gibi servislere yapılan sorgulara ait SRS, SrsName ve BBOX parametrelerinin kullanımı ve işlevleri incelenmektedir.

  • SRS (Spatial Reference System) parametresi, istenen çıktı verinin projeksiyonunu ifade eder. Projeksiyon belirteci olarak EPSG kodları kullanılır. (EPSG:4326 gibi)
  • BBOX parametresi, çıktı verinin içinde bulunduğu çerçeveyi ifade eder. Yani dörtgen şeklinde bir kutu belirler ve sunucudan bu kutu içerine düşen verileri ister. Çerçeve sınırları minX, minyY maxX, MaxY şeklinde belirlenir.

SRS parameteresi WMS sorgularında kullanılırken, SrsName parametresi ise WFS sorgularında kullanılmaktadır. Bu parametreler işlevsel olarak aynı görevi üstlenirler. Ancak kullanım zorunluluklarına bakıldığında;

  • WMS sorgularında SRS ve BBOX parametresi kullanmak zorunludur.
  • WMS sorgularında kullanılan SRS çıktı verinin projeksiyonunu ifade. Ayrıca BBOX ile ifade edilen sınırları da SRS koordinatları ile ifade edilir. WMS sorgularında bu iki parametre birlikte kullanılır.
  • WFS sorgularında SrsName parametresi kullanmak isteğe bağlıdır ve BBOX ile beraber kullanma zorunluluğu yoktur.

WFS sorgularında kullanılan SrsName parametresi bize istediğimiz koordinat sistemine göre coğrafi veri elde etmemizi sağlar. Örneğin bir WFS adresine birbirinden farklı SRS bilgileri ile sorgular göndererek sonuçlarını inceleyelim.

Sorgu 1- EPSG:4326 ile Point sorgusu:

 
 http://localhost:8080/geoserver/wfs?
      request=GetFeature&
      service=wfs&
      version=1.0.0&
      typename=GIS:poi&
      SrsName=EPSG:4326&
      BBOX=490867.51265,4515158.48547,490981.28371,4515253.73566

Cevap 1- Sorgu sonucu dönen nokta koordinatları: (29.89232754,40.77166657)

EPSG:4326 kodu ile WGS84 (World Geodetic System 1984) koordinat sistemi ifade edilmektedir. WGS84 Yeryüzü için standart bir coğrafi koordinat sistemi belirler.

Sorgu 2- EPSG:3857 ile Point sorgusu:

 
 http://localhost:8080/geoserver/wfs?
      request=GetFeature&
      service=wfs&
      version=1.0.0&
      typename=GIS:poi&
      SrsName=EPSG:3857&
      BBOX=490867.51265,4515158.48547,490981.28371,4515253.73566

Cevap 2- Sorgu sonucu dönen nokta koordinatları:  (3327598.68066687,4978720.64792567)

Sorgu 3- EPSG:900913 ile Point sorgusu:

 
 http://localhost:8080/geoserver/wfs?
      request=GetFeature&
      service=wfs&
      version=1.0.0&
      typename=GIS:poi&
      SrsName=EPSG:900913&
      BBOX=490867.51265,4515158.48547,490981.28371,4515253.73566

Cevap 3- Sorgu sonucu dönen nokta koordinatları:  (3327598.68066687,4978720.64792567)

3857 ve 900913 EPSG kodlarına sahip koordinat sistemleri aslında aynı şeyi ifade etmektedir. Bu nedenle sorgular aynı sonucu vermiştir. 900913 sayısı ile “google” kelimesi sayılarla ifade edilmeye çalışılmıştır. EPSG kodları arasında resmi olarak 900913 kodu yer almaz, bunun yerine 3857 kodu yer alır.(http://wiki.openstreetmap.org/wiki/EPSG:3857) İlk başlarda Google haritaları tarafından kullanılan Spherical Mercator projeksiyon koordinat sistemidir. Daha sonraları OpenStreetmap haritaları tarafından da kullanılmaya başlamıştır.

Sorgu 4- EPSG:41100 ile Point sorgusu:

 
 http://localhost:8080/geoserver/wfs?
      request=GetFeature&
      service=wfs&
      version=1.0.0&
      typename=GIS:poi&
      SrsName=EPSG:41100&
      BBOX=490867.51265,4515158.48547,490981.28371,4515253.73566

Cevap 4- Sorgu sonucu dönen nokta koordinatları: (490909.7666,4515222.0527)

EPSG:41100 kodu da resmi EPSG kodları arasında yer almaz. Eğer Coğrafi bir veri tabanına sahipseniz, özel bir projeksiyon koordinat sistemini bu veri tabanına kaydederek ona istediğiniz kodu verebilirsiniz. Bu kodu parametre ile gönderdiğinizde sizin belirlediğiniz koordinat sistemine göre sonuçlar alabilirsiniz.

Yukarıdaki sorgularda kullanılan BBOX parametresi, dörtgen bir sınır belirler ve veritabanında belirlenen bu sınırlar arasında kalan geometrik nesneler aranır.

Sorgu 5- BBOX ve SrsName ile Point sorgusu:

 
 http://localhost:8080/geoserver/wfs?
      request=GetFeature&
      service=wfs&
      version=1.0.0&
      typename=GIS:poi&
      SrsName=EPSG:3857&
      BBOX=490867.51265,4515158.48547,490981.28371,4515253.73566,EPSG:41100

Cevap 5- Sorgu sonucu dönen nokta koordinatları: (3327598.68066687,4978720.64792567)

Bu sorguda dikkat edilecek olursa BBOX parametresinin sonuna EPSG:41100 kodu eklenmiştir. Fakat SrsName parametresi ise EPSG:3857 olarak ayarlanmıştır. Burada yapılmak istenen BBOX koordinatlarının EPSG:41100 sisteminde verilmesi, ancak dönen sonuçların EPSG:3857 siteminde olmasıdır.

Bu parametrelerin doğru bir şekilde kullanımı, harita ve kaynak verinin projeksiyonları farklı olduğu durumlarda hayat kurtarır.

Angular 1.x Sonrası ve Angular 2

25 Oca

Google tarafından geliştirilen AngularJS geliştirme çatısında AngularJS 1.x ve Angular2 şeklinde bir ayrıma gidildi. Bu ayrım yaklaşık iki sene önce başladı ve bugün sonuçlarını değerlendirme fırsatım oldu.

Stack Overflow tarafından 2015-2016 yılında ölçülen ve 50.000 geliştiricinin katıldığı anket sonuçlarına göre ortaya çıkan teknoloji eğilimleri aşağıdaki grafikteki gibidir. Bu anket sonucunu paylaşmamın sebebi, geliştiricisi olduğum bir javascript kütüphanesi olan Angularjs tarafında yaşanan gelişmelerin sonucunu yansıtabilmektir.

Stack Overflow Trending Tech Anketi
Stack Overflow Trending Tech Anketi

 

Bu sonuçlara göre Facebook şirketi tarafından geliştirilen React kütüphanesinin son yıllarda önemli oranda bir geliştiriciyi kendine çektiği görülmektedir. Buna rağmen Google tarafından geliştirilen Angularjs kütüphanesi epeyce gerilemiş durumda.

react-angularjs-trends
Angularjs ve React Google arama trendleri

 

Google trendleri göz önüne alındığında son zamanlarda Angularjs ve React arama oranlarında yine React kütüphanesine olan ilginin arttığı görülmektedir.

Angularjs gibi kullanışlı bir kütüphaneye olan ilginin bu kadar gerilemesinin nedenlerinden biri Angular 2 sürümüyle yeni bir yola girmesidir. Şüphesiz daha performanslı ve daha hafif bir ürün ortaya koymak amacıyla Google tarafından böyle bir adım atılmıştır. Hem TypeScript dilinin hem ECMAscript 6 dilinin gücünden faydalanılmıştır. Ancak Angular 2 sürümü, geliştiricilere TypeScript dilini de bilmeyi zorunlu kılan bir ortam sunmuştur. Yani saf javascript bilgisi ile Angular 2 geliştirme yapılamamaktadır. Oysa Angularjs 1.x sürümlerinde saf javascript bilgisi yeterlidir.

Angular 2 sürümünün kullanıcılar tarafından sıcak bir şekilde karşılanmamasının bir diğer neden de geriye dönük uyumluluğunun olmamasıdır. Bu durum, geliştiricileri bir yol ayrımına getirmiştir. Angularjs 1.x ile geliştirilmiş uygulamalarınızı korumak ve devam etmek mi, yoksa geriye dönük olarak tüm uygulamalarınızı Angular 2 ile yeniden yazmak mı? Bu durum, Angular desteği sunan geliştirici topluluklarını da ikiye bölmüş durumdadır. Bu durumun sonucu zamana bağlı olarak görülecektir.

Şüphesiz teknolojik evrimin büyük bir hızla yaşandığı yıllardayız. Belkide bir kaç sene sonra Angular ve React kütüphenelerinin pabucunu dama atacak ve yerlerine yeni kütüphaneler üretilecektir. Hani bir zamanlar frontend geliştirme tarafında  popüler olan Flash, Java Flex, Silverlight’ta olduğu gibi. Bu elbette kaçınılmaz bir gelişim sürecidir. Ancak şirketlerin kendi ürünlerini kullananlarının önüne engel çıkarmasına şahsen bir anlam verebilmiş değilim. Bu da benim kişisel görüşümdür.

Angularjs Emit ve Broadcast

7 Oca

Angularjs uygulamalarında Dom elemanlarını haberdar etmek için kullanılan iki yöntemden biri broadcast diğeri de emit metotlarıdır.

Broadcast, root scope dan başlayarak bütün alt scope’ları yaydığı bilgiden haberdar edilebilir. Aşağıdaki resimde ifade edildiği şekli ile inceleyecek olursak, çalışma zamanında ilk MapController nesnesi Dom üzerine yerleştiğinde hiyerarşik olarak üst scope’dan aşağı doğru tüm scope’ları haberdar etmektedir.

Emit, yönteminde ise resimde görüldüğü üzere sadece parent scope’lar bilgilendirilir.

JQuery event.stopPropagation() ve event.preventDefault() metodları

23 Ara

JQuery ile event yakalama işlemleri sırasında iç içe geçmiş HTML elementleri sırasında istemeden bazı karışıklıklara neden olabiliriz. Bu karışıklıklardan bir tanesi, bir elementteki event tetiklendiğinde onun üst elementlerinde de olayın tetiklenmesidir.

event.stopPropagation()

Örneğin bir unorderedlist (<ul>) ile çalışırken listedeki bir eleman(<li>) tıklandığında, hemen (<ul>) elementinde de “click” event tetiklenecektir. Çünkü bu ili element iç içe barındırılmaktadır. Eğer (<li>) elementine tıklandığında (<ul>) elementinde bir “click” event gerçekleşmesinin istenmediği durumda event.stopPropagation() metodu kullanılmaktadır.


$("li").click(function(event){
   event.stopPropagation();
   alert("The li element was clicked.");
});

 

event.preventDefault()

Bir diğer durum ise HTML elementlerinin mevcut eylemlerini engelleme isteğidir. Örneğin bir link tıklandığında doğrudan linkin gösterdiği adrese yönlendirme yapılır. Ancak link tıklandığında bu eylemin engellenmesi gerekiyor ise event.preventDefault(); metodu kullanılabilir.


$("a").click(function(event){
   event.preventDefault();
});

Bu durumda link tıklansa da adrese yönlendirme yapılmaz.

Postgresql Yedek Alma İşlemleri

10 Kas

PostgreSQL veri tabanı yedekleme işlemleri iki farklı adımda ele alınabilir. Bunu yanında tüm veri tabanını başka yere aktarmak yerine belli bir tablonun aktarılması da mümkündür.

  1. Veri tabanı yedeklerinin dosyaya aktarılması.
  2. Veri tabanı yedeklerinin başka bir veri tabanına aktarılması.
  3. Veri tabanında bulunan bir tablonun başka bir veri tabanına tabloya aktarılması.

PostgreSQL veri tabanında yedekleme işlemi için kullanılan komut pg_dump şeklindedir. 9.3 versiyonu için parametre ve kullanım seçeneklerine buradan erişebilirsiniz.

1- Veri tabanı yedeklerinin dosyaya aktarılması işlemi.

Dosyaya aktarım işlemleri sırasında Schema ve Data aktarımlarının ayrı ayrı veya birlikte aktarımı senaryoları vardır. Bu durumda üç durum söz konusudur.

a) Data ve Schema’nın birlikte dosyaya aktarılması.

pg_dump -C -h host -U username db_name > /directory/dump_schema_and_data_file_name

b) Sadece Data aktarılması.

pg_dump -Cs -h host -U username db_name > /any_directory/dump_schema_file_name

c) Sadece Schema aktarılması.

pg_dump -a -h host -U username db_name > /any_directory/dump_data_file_name

2- Veri tabanı yedeklerinin başka bir veri tabanına aktarılması işlemi.

PostgreSQL veri tabanında bulunan verileri başka bir sunucuda veya aynı sunucuda bulunan bir veri tabanına aktarmak mümkündür. Bu sayede herhangi bir dosya da yedekleme tutulmaz

Kopyalamanın uzak bilgisayardan (remote) çalıştığımız local bilgisayara yapılacağını varsayacak olursak.

pg_dump -C -h remote_host -U remote_user db_name | psql -h localhost -U local_user db_name

3-Veri tabanında bulunan bir tablonun başka bir veri tabanına tabloya aktarılması.

Kopyalamanın uzak bilgisayardan (remote) çalıştığımız bilgisayara yapılacağını varsayacak olursak.

pg_dump -t kopyalanacak_tablo_adı -U remote_username -h remote_host_adres remote_database_name | psql -U local_username local_database_name

Bu yedekleme işleminde remote_host_adres bilgisayarında bulunan remote_database_name veri tabanındaki tablo local bilgisayarda bulunan PosqreSQL veri tabanında bulunan local_database_name veri tabanına aktarılmıştır.

Postgresql Şifre Yenileme

9 Kas

PostgreSQL veri tabanında şifre unutma durumunda yapılacak işlem adımları.

Postgreql şifresini unuttuğumuzda değiştirmek için izlenecek adımlar.

  • Postgresql ayar dosyası olan pg_sql.hba içerisinde “md5” olan bütün kısımlar “trust” olarak değiştirilir. (host   all   all   0.0.0.0/0   trust ) gibi.
  • Postgresql servisi yeniden başlatılır.
  • Console veya PgAdmin penceresinden giriş yapılır. (PgAdmin ile girişte şifre sorarsa boş geçilir.)
  • Şifre değiştirme işlemi Console ve PgAdmin arayüzünden olmak üzere iki farklı şekilde yapılabilir.

1- Console ortamından şifre değişikliği.

postgresql

2- PgAdmin arayüzünden şifre değişikliği.

adsiz

Bu işlemlerin ardından yapılacak olan iki önemli adım vardır.

  • Postgresql ayar dosyası olan pg_sql.hba içerisinde “trust” olan bütün kısımlar “md5” olarak değiştirilir.
  • Postgresql servisi yeniden başlatılır.

Ubuntu server üzerine RabbitMQ kurulumu

24 Ağu

RabbitMQ dağıtık uygulamaların (distributed application) oluşturulmasında ihtiyaç duyulan mesajlaşma kuyruğunu yöneten bir uygulamadır. Uygulamanın görevi günlük hayatımızda dolmuş ve otobüs duraklarına gelen müşterileri araçlara yönlendiren görevlilere(simsarlara) benzetildiğinden kısaca message broker(mesaj simsarı) olarak adlandırılmıştır.

RabbitMQ resmi sayfasında ürün özelliklerinden kısaca şu şekilde bahsedilmektedir.

  • Robust messaging for applications: Uygulamalarınız için sağlam bir mesajlaşma altyapısı.
  • Easy to use: Kullanımı kolay.
  • Runs all major operating systems: Yaygın kullanılan işletim sistemlerinin hepsinde çalışır.
  • Supports a huge number of developer platforms: Çok sayıda yazılım geliştirici platformunu destekler.
  • Open source and commercially supported: Açık kaynak ve ticari lisanslı seçenekleri destekler.

RabbitMQ uygulaması Erlang programlama dili ile geliştirilmiştir. Bu nedenle kurulum yapılacak olan sistemlerde öncelikle Erlang kodlarını çalıştırabilen altyapının kurulması gerekmektedir.

RabbitMQ Ubuntu Kurulumu

Ubuntu üzerinde kurulum gerçekleştirmek için apt komutu kullanılabilir. (Ubuntu 14.04 veya sonrası sürümlerde).

Öncelikle Ubuntu repository paket listelerini güncelleyerek en son paketlerin listesini elde ederek başlayabilirsiniz.

sudo apt-get update

Ardından RabbitMQ paketini indirerek kurulumu gerçekleştirebilirsiniz.

sudo apt-get install rabbitmq-server

RabbitMQ sürümünü öğrenmek için kullanılacak olan komut:

sudo rabbitmqctl status

Bu komut çalıştırıldığında gelen listede versiyon numarası bulunur.

{rabbit, “RabbitMQ”, 2.7.1}

Kurulum işlemi gerçekleştirildikten sonra RabbitMQ servisinin çalışır duruma getirildiğini görebilirsiniz.

sudo service –status-all

RabbitMQ mesajlarını görüntüleyebilmek için bir plugin geliştirilmiştir. Bu plugin sayesinde web arayüzü üzerinden mesajlaşma trafiğini izleyebilirsiniz. Plugin adı rabbitmq_management şeklindedir. Bu plugin aktif edilmeden kullanılamaz. Aktif etmek için kullanılacak komut:

sudo /usr/lib/rabbitmq/lib/rabbitmq_server-2.7.1/sbin/rabbitmq-plugins enable rabbitmq_management

Plugin konfigürasyonu değiştiği için rabbitmq-server servisinin yeniden başlatılması gerekmektedir.

sudo service rabbitmq-server restart

Bu işlemi gerçekleştirdikten sonra aktif RabbitMQ plugin listesini görüntüleyebilirsiniz.

 sudo /usr/lib/rabbitmq/lib/rabbitmq_server-2.7.1/sbin/rabbitmq-plugins list

rabbitmq-management

Artık web arayüzü aktif edilmiştir. Web arayüzüne erişim için internet tarayıcınızdan:

http://sunucunuzun-ip-adresi:55672/

RabbitMQ 2.7.1 sürümünde web arayüzü varsayılan olarak 55672 portundan aktif edilmektedir.

rabbitmq-management-web

Güncelleme: RabbitMQ 3.6.5 sonrası sürümlerde 15672 portundan aktif edilmektedir.

.Net Framework Spatial Data Desteği

22 Ağu

System.Data altında bulunan sınıflar(Class) sayesinde farklı veri kaynaklarına erişmek ve onlar üzerinde işlemler yapmak mümkündür.  Örneğin ADO.NET mimarisinde kullanılan SQL Server, Oracle, ODBC ve OleDB gibi veri sağlayıcılar bu namespace altında bulunurlar.

.Net Framework 4.5 versiyonundan önce mekansal verilere düz SQL sorguları ile veya veritabanı üzerine kaydedilen stored procedure’ler aracılığı ile erişilebilmekteydi. Ancak .Net 4.5 versiyonundan sonra System.Data  kütüphanesine eklenen System.Data.Spatial alanı ile artık mekansal verilere erişim ve onlar üzerinde yapılacak işlemler DbGeography ve DbGeometry nesneleri ile gerçekleştirmek mümkün hale gelmiştir.

DbGeography

DbGeography sınıfı, verilerin jeodezik(yer yüzeyindeki)  koordinat sisteminde temsil edilmesini sağlar. Yani belirli bir koordinat sistemine göre nesnelerin yeryüzündeki konumu ile ilgilenir. Örneğin bir noktanın yeryüzünde nereye karşılık geldiği DbGeography nesnesi ile temsil edilebilir.

DbGeometry

DbGeometry sınıfı, nesnelerin geometrik şekillerini tanımlayan nesneler için bir taban oluşturur. DbGeometry nesnelerin konumu ile ilgilenmez, sadece şekilleri ile ilgilenir. Nesnelerin geometrik şekilleri Point, Polygon, LineString v.b. olabilmektedir. Örneğin bir yolun şeklinin LineString olması DbGeometry nesnesi ile temsil edilir. Yolun nerede konumlandığı ise DbGeography nesnesi ile temsil edilir.

Geometry ve Geography kavramlarının ayrımı sadece .Net platformuna özgü bir mesele değildir. Bütün platformlarda bu şekilde organize olmuştur. Bu organizasyon yazılım platformundan ziyade Coğrafi Bilgi Sistemleri ile alakalı bir durumdur.

DbGeometry ve DbGeography kavramlarını bir örnek üzerinden inceleyerek devam edelim. Open Geospatial Consortium (OGC) standartlarında bir geometrik şeklin temsili Well Known Text (WKT) adında bir işaretleme dili ile belirlenmiştir. Örneğin bir noktanın WKT gösterimi şu şekildedir:

POINT (12.321876 24.981276)

Örneğin Gebze’de seçilen bir noktanın Pendik ve İzmit’te seçilen noktalara göre uzaklıklarını karşılaştıralım.


[Test]
public void ClosestPoint_WithThreePoints()
{
    var gebze = DbGeometry.FromText("POINT(40.803099 29.405076)");
    var pendik = DbGeometry.FromText("POINT(40.877359 29.254845)");
    var izmit = DbGeometry.FromText("POINT(40.764946 29.950905)");

    var gebze_pendik = gebze.Distance(pendik);
    var gebze_izmit = gebze.Distance(izmit);

    Assert.True(gebze_izmit > gebze_pendik);
}

gebzepoint

Burada gebze.Distance(pendik) metodunun yaptığı iş aslında Pisagor‘un iki nokta arasındaki uzaklık hesabıdır. Yani düzlemdeki iki noktanın bir birine olan uzaklığının hesaplanması işlemi gerçekleştirilmekte ve sonuç derece cinsinden bir değer olmaktadır.

Geometrik şekilleri yer yüzündeki konumu ile temsil etmek için DbGeography sınıfı kullanılır.

[Test] 
public void ClosestLocation_WithThreePoints() 
{ 
    var gebze = DbGeography.FromText("POINT(40.803099 29.405076)", 4326);
    var pendik = DbGeography.FromText("POINT(40.877359 29.254845)", 4326); 
    var izmit = DbGeography.FromText("POINT(40.764946 29.950905)", 4326);

    var gebze_pendik = gebze.Distance(pendik);
    var gebze_izmit = gebze.Distance(izmit);

    Assert.True(gebze_izmit > gebze_pendik);
}

gebzepoint
Sonuç olarak metre cinsinden uzaklıklar elde edilir. Gebze’de seçilen nokta ile İzmit’te seçilen nokta arasındaki uzaklık yaklaşık 6km şeklinde hesaplanmıştır.

DbGeography sınıfında geometrik şekil tanımlama işlemi DbGeometry ile aynıdır. Ancak ek parametre olarak koordinat sistemi kodu (coordinateSystemId) girilebilir. Bu kodlar European Petroleum Survey Group(EPSG) tarafından koordinat sistemlerine atanmıştır. Bilinen tüm koordinat sistemlerine karşılık bir tamsayı vardır. Bu konu ile ilgili detaylara Spatial Reference System başlıklı yazıdan ulaşabilirsiniz.

 

OAuth 2.0 Resource Owner Password Credentials Request ve Response

16 Ağu

Uygulamaların yetkilendirilmesi için yapılan access token talebi sırasında doğrudan kullanıcı adı ve şifre bilgilerini isteyen bir yöntemdir.

Resource Owner Password Credentials Grant Request

Request için gerekli parametreler:

  • grant_type : Zorunlu parametredir. Alacağı değer “password” olmalıdır.
  • username : Zorunlu parametredir. Kaynak sahibinin kullanıcı adıdır.
  • password : Zorunlu parametredir. Kaynak sahibinin şifresidir.
  • scope : İsteğe bağlı parametredir. Yetki kapsamını belirtir.

Resource Owner Password Credentials Grant Response

Authorization Server tarafındancevap olarak JSON formatında bir nesne döner.

  • access_token : Zorunlu parametredir. Authorization Server tarafından üretilen şifreli bilgidir.
  • token_type : Zorunlu parametredir. Authorization Server tarafından belirlenen token türüdür.
  • expires_in : İsteğe bağlı parametredir. Access token için belirlenen saniye cinsinden geçerlilik süresidir. Süre bittiğinde token artık geçersizdir.
  • refresh_token : Zorunlu parametredir. Access token süresi dolduğunda yeni bir token elde etmek için kullanılacak olan parametredir.