API Platform’da IRI kullanımı

IRI: “International Resource Identifier”

Yusuf Biberoğlu
2 min readFeb 2, 2023
https://api-platform.com/

IRI api projenizde tüm kaynaklarda benzersiz bir tanımlama yapmamızı sağlar.

Her kaynak, o kaynağı getirebileceğiniz URL üzerinde belirlenmiş, tanımlanmış bir “@id” alanına sahiptir. Aşağıdaki gibi;

/cities/61

https://localhost:8000/cities/61

{
“@context”: “\/contexts\/City”,
“@id”: “\/cities\/61”,
“@type”: “City”,
“id”: 61 …

Bunun için kaynağımız yani city entity üzerinde get işlemi yapmamız gerekir;

Kaynağınızda herhangi bir Get işlemi yoksa API Platformu, bu IRI’nin oluşturulmasına yardımcı olmak için otomatik olarak bir işlem ekler. Kaynağınızın herhangi bir tanımlayıcısı varsa, bu işlem /city/61 gibi görünecektir. Ancak kaynağınızın tanımlayıcısı yoksa API Platformu /.well-known/genid/678678678567879jkhjglhjkl Skolem biçimini kullanır. Aşağıdaki gibi;

Api platformda post isteklerinde IRI kullanımı;

Örneğin;

Bir urun entity ve satinal entity’den oluşan projemizde bir ürünü satın almak için aşağıdaki endpoint’e bir post isteğinde bulunuluyor. Ürün için doğrudan id bilgisi yazılıyor.

Burada ürünün doğrudan id’sini yazarsak Expected IRI hatasıyla karşılaşırız. id 2 benzersiz bir tanımlayıcı değildir şehirler ya da kullanıcılar için de aynı sayı kullanılabilir. Bu yüzden aşağıdaki gibi IRI kullanılır.

— — —

My YouTube Channel;

https://www.youtube.com/@yusufbiberoglu

mail@yusufbiberoglu.com

My Udemy Course;

Symfony application using Google OAuth for authentication. When a user signs in through Google, our system will check if the user already exists in our database. If not, it will create a new user account. Once authenticated, either as a new or existing user, our application will generate a JSON Web Token (JWT). Built on the API Platform.

If you want a detailed explanation, please purchase my Udemy course.

https://www.udemy.com/course/google-oauth-php-symfony-api-platform-jwt/?referralCode=67A58BBAE3151CDC1255

Discount Coupon: AD25A625CB8976085C88

--

--

Yusuf Biberoğlu
Yusuf Biberoğlu

Written by Yusuf Biberoğlu

Software Developer 💻 (PHP-Symfony, Flutter, Dart, Firebase) https://www.linkedin.com/in/yusufbiberoglu/

No responses yet