Bu repo, PHP diliyle geliştirilmiş olan yemek tariflerini sunan API'nin dokümantasyonunu içerir.
Bu API, yemek tariflerini ekleme, güncelleme, silme ve listeleme işlemleri yapmaya olanak tanır.
Tarifler, tarifin eklenme tarihi ve ekleyen API anahtarı kaydedilir. Ayrıca tarif ekleme ve güncelleme isteklerinde karakter sayısı denetlenir.
title
için maksimum 60 karakter
ingredients
için maksimum 300 karakter
instructions
için maksimum 1200 karakter
API anahtarları aylık maksimum 100 istek ile sınırlandırılmıştır. API anahtarı sahibi olabilmek veya ayrıcalıklı kullanıcı statüsüne geçip sınırsız istek hakkına sahip olabilmek için iletişime geçilmesi gerekilmektedir.
Base URL: https://toktasoft.com/api/recipes.php
API, dört ana işlevi yerine getiren GET
, POST
, PUT
ve DELETE
türündeki HTTP isteklerini destekler.
Parametre |
Zorunlu Mu? |
Açıklama |
---|---|---|
|
evet |
Geçerli bir API anahtarı. |
|
hayır |
Belirli bir tarifin ID'si. Belirtilmezse tüm tarifler listelenir. |
Yeni tarif eklemek için kullanılır.
Parametre |
Zorunlu Mu? |
Açıklama |
---|---|---|
|
evet |
Geçerli bir API anahtarı. |
Gönderilen JSON formatındaki veriler:
{
"title": "Tarifin başlığı",
"ingredients": "Tarifin malzemeleri",
"instructions": "Tarifin yapılış talimatları"
}
Mevcut bir tarifi güncellemek için kullanılır.
Parametre |
Zorunlu Mu? |
Açıklama |
---|---|---|
|
evet |
Geçerli bir API anahtarı. |
Gönderilen JSON formatındaki veriler:
{
"id": 1,
"title": "Yeni başlık",
"ingredients": "Yeni malzemeler",
"instructions": "Yeni yapılış talimatları"
}
Mevcut bir tarifi silmek için kullanılır.
Parametre |
Zorunlu Mu? |
Açıklama |
---|---|---|
|
evet |
Geçerli bir API anahtarı. |
|
evet |
Silinecek tarifin ID'si. |
İstek örnekleri curl
komut satırı aracı kullanılarak gösterilmiştir.
✅Bütün yemek tarifleri
curl -X GET "http://toktasoft/api/recipes.php?api_key=myapikey"
{
"success": true,
"result": [
{
"id": "1",
"title": "Spaghetti",
"ingredients": "Makarna, Domates Sosu, Peynir",
"instructions": "Makarnayı haşlayın, sosu ekleyin ve peynirle servis edin.",
"created_at": "2024-07-11 08:04:14",
"updated_at": "2024-07-11 08:04:14"
},
{
"id": "2",
"title": "Salata",
"ingredients": "Marul, Domates, Salatalık, Zeytinyağı, Limon",
"instructions": "Tüm malzemeleri doğrayın ve karıştırın.",
"created_at": "2024-07-11 13:16:21",
"updated_at": "2024-07-11 19:34:47"
}
],
"monthly_request_count": 52
}
✅Belirli bir yemek tarifi
curl -X GET "http://toktasoft/api/recipes.php?api_key=myapikey&id=1"
{
"success": true,
"result": {
"id": 1,
"title": "Spaghetti",
"ingredients": "Makarna, Domates Sosu, Peynir",
"instructions": "Makarnayı haşlayın, sosu ekleyin ve peynirle servis edin.",
"created_at": "2024-07-11 08:04:14",
"updated_at": "2024-07-11 08:04:14"
},
"monthly_request_count": 68
}
❌Belirli bir yemek tarifi
Olmayan bir yemek tarifi için istek atıldığında hata döndürülür.
curl -X GET "http://toktasoft/api/recipes.php?api_key=myapikey&id=100"
{
"success": false,
"error": "Tarif bulunamadı.",
"monthly_request_count": 102
}
❌Belirli bir yemek tarifi
Aylık istek sınırına ulaşılmışsa hata döndürülür.
curl -X GET "http://toktasoft/api/recipes.php?api_key=myapikey&id=1"
{
"success": false,
"error": "Aylık istek sınırına ulaşıldı.",
"monthly_request_count": 100
}
✅Yeni bir yemek tarifi ekleme
curl -X POST "https://toktasoft.com/api/recipes.php?api_key=myapikey" -H "Content-Type: application/json" -d '{
"title": "Omlet",
"ingredients": "Yumurta, Tuz, Karabiber",
"instructions": "Yumurtaları çırpın, tuz ve karabiber ekleyin, tavada pişirin."
}'
{
"success": true,
"message": "Yemek tarifi başarıyla eklendi.",
"monthly_request_count": 92
}
❌Yeni bir yemek tarifi ekleme
Alanlar boş bırakılırsa yada eksik gönderilirse hata döndürülür.
curl -X POST "https://toktasoft.com/api/recipes.php?api_key=myapikey" -H "Content-Type: application/json" -d '{
"title": "",
"ingredients": "Yumurta, Tuz, Karabiber",
"instructions": "Yumurtaları çırpın, tuz ve karabiber ekleyin, tavada pişirin."
}'
{
"success": false,
"error": "Eksik veya boş parametreler.",
"monthly_request_count": 304
}
✅Mevcut bir yemek tarifini güncelleme
curl -X PUT "https://toktasoft.com/api/recipes.php?api_key=myapikey" -H "Content-Type: application/json" -d '{
"id": 1,
"title": "Güncellenmiş Spaghetti",
"ingredients": "Makarna, Domates Sosu, Peynir",
"instructions": "Makarnayı haşlayın, sosu ekleyin ve peynirle servis edin."
}'
{
"success": true,
"message": "Yemek tarifi başarıyla güncellendi.",
"monthly_request_count": 107
}
❌Mevcut bir yemek tarifini güncelleme
Olmayan yada bir yemek tarifi güncellenmeye çalışılırsa hata döndürülür.
curl -X PUT "https://toktasoft.com/api/recipes.php?api_key=myapikey" -H "Content-Type: application/json" -d '{
"id": 999,
"title": "Güncellenmiş Spaghetti",
"ingredients": "Makarna, Domates Sosu, Peynir",
"instructions": "Makarnayı haşlayın, sosu ekleyin ve peynirle servis edin."
}'
{
"success": false,
"error": "Böyle bir tarif bulunamadı.",
"monthly_request_count": 60
}
❌Mevcut bir yemek tarifini güncelleme
Güncellenmek istenen yemek tarifinin ilgili alanları boş bırakılırsa yada eksik gönderilirse hata döndürülür.
curl -X PUT "https://toktasoft.com/api/recipes.php?api_key=myapikey" -H "Content-Type: application/json" -d '{
"id": 1,
"title": "Güncellenmiş Spaghetti",
"ingredients": "Makarna, Domates Sosu, Peynir"
}'
{
"success": false,
"error": "Eksik veya boş parametreler.",
"monthly_request_count": 341
}
✅Mevcut bir yemek tarifini silme:
curl -X DELETE "https://toktasoft.com/recipes.php?api_key=myapikey&id=1"
{
"success": true,
"message": "Yemek tarifi başarıyla silindi.",
"monthly_request_count": 207
}
Copyright 2024 Mustafa TOKTAŞ
Licensed under the GNU General Public License v3.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
https://www.gnu.org/licenses/gpl-3.0.html
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.