Jump to content
Oscar

IPB'de REST API Kullanımı

Önerilen İletiler

API Nedir?

API Application Programming Interface. Yani programlanabilir uygulama erişim arayüzü denilebilir. API ile iç yapısına müdahale edemeyeceğimiz sistemlere erişim için verilen bir kapıdır. API'ler ile izin verilen işlemleri başak bir yerden erişerek yapmaya izin veriler.

 

API'ler iki tür erişim servisini kullanır SOAP ve REST.  SOAP üzerinde fazla durmayacağım. XML tabanlı çalışan REST'e göre daha katı kuralları olan zaman zaman sıkıntı veren ve kullanımda proxy zorunluluğu vardır.  REST API daha esnek ve katı kuralları olmayan http protokolünü kullanan bir API hizmetidir. Çok daha teknik bilgiler için İnternet üzerinde profesyonel anlamda makale bulmak mümkündür. 

 

Örneğin bir WordPress tabanlı bir blogunuz var. Uygulama geliştiriyorsunuz ve WordPress'e üye olanların aynı zamanda IPB forumda da oluşturulmasını istiyorsunuz. Öyle çok karmaşık sistemlere başvurmanıza gerek yok. IPB REST API erişimi ile bize bu imkanı sunuyor.

 

Basit bir script ile IPB üzerinde zin verilen bütün işlemler yapabilirsiniz. Kullanıcı bilgilerini al. Kullanıcı sil. Forum oluştur veya konu aç konu sil gibi bir çok özelliği gerçekleştirebilirsiniz.

 

NASIL Kullanılır?

Kullanım için bir anahtar oluşturulur ve bu anahtara tanımlanan özellikler kullanılır. Adı üstünde anahtar olduğu için başkalarının eline geçmesi olumsuz sonuçlara neden olabilecektir. Curl yardımıyla anahtar verisi ve IPS'nin deyimiyle Bitiş Noktası özelliği kullanılarak işlem yerine getirilir. 

 

Örneğin bu kod yarımıyla kullanıcı oluşturabileceğim gibi sadece kullanıcı verilerini çekiyorum.

 

<?php

$communityUrl = 'http://ipb41171.com/';
$apiKey = '248977731e42436ad20a7375d172f9bd';

$curl = curl_init( $communityUrl . 'api/core/members/1' );
curl_setopt_array( $curl, array(
  CURLOPT_RETURNTRANSFER	=> TRUE,
  CURLOPT_HTTPAUTH	=> CURLAUTH_BASIC,
  CURLOPT_USERPWD		=> "{$apiKey}:"
) );
$response = curl_exec( $curl );

echo "<pre>";
print_r($response);
echo "</pre>";

 

Bana verileri bir array/dizi ile döndürür. Dönen verilere göz atalım.

 

Alıntı

{
    "id": 1,
    "name": "admin",
    "title": null,
    "timeZone": "Europe\/Istanbul",
    "formattedName": "admin<\/span>",
    "primaryGroup": {
        "id": 4,
        "name": "Administrators",
        "formattedName": "Administrators<\/span>"
    },
    "secondaryGroups": [],
    "email": "user@email.com",
    "joined": "2017-01-17T10:53:19Z",
    "registrationIpAddress": "::1",
    "warningPoints": 0,
    "reputationPoints": 0,
    "photoUrl": "http:\/\/ipb41171.com\/uploads\/set_resources_1\/84c1e40ea0e759e3f1505eb1788ddf3c_default_photo.png",
    "profileUrl": "http:\/\/ipb41171.com\/profile\/1-admin\/",
    "validating": false,
    "posts": 1,
    "lastActivity": "2017-01-17T21:20:30Z",
    "lastVisit": "2017-01-17T21:08:19Z",
    "lastPost": "2017-01-17T10:56:12Z",
    "profileViews": 0,
    "birthday": null,
    "customFields": {
        "1": {
            "name": "Personal Information",
            "fields": {
                "1": {
                    "name": "About Me",
                    "value": null
                }
            }
        }
    }
}

 

 

Kullanıcı Anahtarı Nasıl oluştururum?

Kullanıcı anahtarı işlem yapılacak forum üzerinde oluşturulur. Erişim için herhangi bir yerde Curl ile erişebilirsiniz. Admin panelden REST API bölümünü açıyoruz.

 

 curl1.png

 

Create New diyerek bir anahtar oluşturmak istiyoruz.

 

curl2.png

 

Resimde görüldüğü gibi anahtarımız oluşmuş ve ona bir isim verdik.  Restrict to IP Addresses? seçeneğinde bütün ip adreslerinden erişim verebileceğimiz gibi sadece tanımlı ip adreslerine izin vererek güvenliği artırmayı düşünebiliriz. Allowed IP Addresses bölümünde izin verilen ip adreslerini belirleyebiliriz.

 

curl3.png

 

İşte önemli bölüme geldik. 

Endpoint permissions yazan yerden bu anahtara nelere izin vereceğimizi belirleyebiliyoruz. GET ile veri çekebiliyorken POST ile veri gönderip işlem yaptırıyoruz.  DELETE zaten adından belli veri silmek için kullanıyoruz. Örneğim bir kullanıcıyı silebiliriz.

 

curl4.png

 

Evet REST API ile en azından developer gözüyle bir fikir sahibi olduğunuzu umuyorum. Ayrıntılar için ileride tekrar konuya dönebilirim. Merak ettiğiniz şeyler olursa açıklamaya çalışırım.

 

https://invisionpower.com/developers/rest-api

  • Beğen 2

İletiyi paylaş


İletiye bağlantı
Sitelerde Paylaş

Hesap oluşturun veya yorum yazmak için oturum açın

Yorum yapmak için üye olmanız gerekiyor

Hesap oluştur

Hesap oluşturmak ve bize katılmak çok kolay.

Hesap Oluştur

Giriş yap

Zaten bir hesabınız var mı? Buradan giriş yapın.

Giriş Yap

  • Konuyu Görüntüleyenler   0 kullanıcı

    Sayfayı görüntüleyen kayıtlı kullanıcı bulunmuyor.

×

Önemli Bilgilendirme

Forum kurallarımızı okudunuz mu? Forum Kuralları.