اذهب إلى المحتوى
  • 0

كيفية برمجة API ؟

الشيخ المختار الشنقيطس

السؤال

Recommended Posts

  • 0

يمكن برمجة API تقريبا باستخدام كل لغات البرمجة التي تدعم ويب مثلا  JAVA Python Ruby C# JavaScript والكثير من لغات برمجة .
يمكنك استخدام api وربطه ب Android عن طريق استخدام أى مكتبة  HTTP client for Android مثلا  Retrofit 2
لابد من إضافة صلاحيات اﻷنترنت عن طريق
 

<uses-permission android:name="aandroid.permission.INTERNET" />

إضافة مكتبة إلى ملف build.gradle
 

implementation 'com.squareup.retrofit2:retrofit:2.4.0'
implementation 'com.squareup.retrofit2:converter-gson:2.4.0'

لاحظ تم إضافة مكتبة gson هي تقوم بإضافة بتحويل json إلى java object 

سوف نستخدم ذلك لينك عباره عن get api -- لجلب مقالات https://jsonplaceholder.typicode.com/posts
شكل داتا 
 

[{
    "userId": 1,
    "id": 1,
    "title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
    "body": "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto"
  },
  {
    "userId": 1,
    "id": 2,
    "title": "qui est esse",
    "body": "est rerum tempore vitae\nsequi sint nihil reprehenderit dolor beatae ea dolores neque\nfugiat blanditiis voluptate porro vel nihil molestiae ut reiciendis\nqui aperiam non debitis possimus qui neque nisi nulla"
  },
  {
    "userId": 1,
    "id": 3,
    "title": "ea molestias quasi exercitationem repellat qui ipsa sit aut",
    "body": "et iusto sed quo iure\nvoluptatem occaecati omnis eligendi aut ad\nvoluptatem doloribus vel accusantium quis pariatur\nmolestiae porro eius odio et labore et velit aut"
  }

نقوم بإنشاء كلاس لمساعدة في جلب هذه البيانات 
 

public class PlaceholderPost {

    private int userID;
    private int id;
    private String title;
    private String body;

    public int getUserId() {
        return userID;
    }

    public int getId() {
        return id;
    }

    public String getTitle() {
        return title;
    }

    public String getBody() {
        return body;
    }

}

ثم نقوم بإضافة كلاس جديد لجلب معلومات من API 
 

import java.util.List;
import retrofit2.Call;
import retrofit2.http.GET;

public interface PlaceholderAPI {

    @GET("posts")
    Call<List> getPosts();

}

كيفية استدام مكتبة في اتصال ب API 
 

 Retrofit retrofit = new Retrofit.Builder()
            .baseUrl("https://jsonplaceholder.typicode.com/")
            .build();

ثم نربطه ب interface خاص بينا 
 

Call<List> call = placeholderAPI.getPosts();

نقوم بجلب داتا وربطه بالتصميم 
 

call.enqueue(new Callback<List>() {
            @Override
            public void onResponse(Call<List> call, Response<List> response) {

                if (response.isSuccessful()) { // للتأكد من كل شئ يقوم بجلب داتا
                    List posts = response.body();
                    Log.d("Success", posts.get(3).getBody().toString());
                    TextView textView = findViewById(R.id.text);
                    textView.setText(posts.get(3).getBody().toString());
                } else {
                    Log.d("Yo", "Boo!");
                    return;
                }
            }

            @Override
            public void onFailure(Call<List> call, Throwable t) {
                Log.d("Yo", "Errror!");
            }

        });


        Log.d("Yo","Hello!");
    }
}

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

يمكن للمطورين استخدام أي لغة برمجة حديثة تقريبًا (مثل JavaScript أو Ruby أو Python أو Java) لتشفير API الخاص بهم. تأتي معظم لغات البرمجة بالفعل مع البرامج الضرورية للتفاعل مع واجهات برمجة تطبيقات الويب ، لكن المطورين عادةً ما يقومون بتثبيت حزم أو تعليمات برمجية إضافية للراحة والمرونة و بالنسبة لأي لغة برمجة معينة ، يوجد عادةً إطار عمل شائع واحد على الأقل  يمكن استخدامها لإنشاء واجهات برمجة التطبيقات. مطورو Ruby ، على سبيل المثال ، يستخدمون إطار عمل Rails.  ومطور php يستخدم  إطار العمل Laravel فالإستعانة في إطارات العمل يوفر عليك الكثير من الوقت والجهد في بناء ِApi   .

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

 

لإنشاء واجهة برمجة تطبيقات أو الـ API الخاص بك تقريباً يمكن أن يتم بجميع لغات البرمجة المشهور و الخاصة بالـ Back-end مثل Python و PHP و NodeJs  
و ربط لـ API بالأندرويد فذلك حسب نوع بنية تطبيق الأندرويد الخاص بك بمعني بما تم بناء و برمجة التطبيق.


وأما بخصوص الإنشاء بشكل عام هناك عدة خطوات للإنشاء و هي

 الخطوة 1. تجهيز

كل شيء يبدأ بالتوصل إلى الخطة الصحيحة , و يجب اتخاذ بعض القرارات الرئيسية قبل أن تتمكن من البدء في إنشاء API . في مرحلة التجهيز هذه ، يجب عليك

  • تحديد دلالات مجال التطبيق أو ما هو الشيء الذي تصفه
  • وتحديد النمط المعماري للـ API الذي ستستخدم بمعني على ماذا يستند

وهناك عدة انماط مثل وظائف ال CRUD أو Hypermedia يمكن البحث عنهم , و كل نمط له مزاياه وعيوبه فإن بعض الأساليب المعمارية أسهل وأسرع في التنفيذ ، بينما يقدم البعض الآخر مزايا مثل قابلية التوسع والتطور. , اختر النمط المعماري المناسب لتطبيقك وتأكد من توصيله بوضوح. 

  • تشكيل دليل نمط الـ API.

مثل نوع الوسائط التي ستستخدمها أو نوع المصادقة  التي ستضعها. و ضع اصطلاحات التسمية و تنسيق URI بشكل واضح ومختصر.

 الخطوة 2. البناء 

في هذه المرحلة ، ستحدد الشكل الذي سيبدو عليه الـ API و هناك عدد من الأدوات التي يمكن أن تساعدك في إنشاء API الخاص بك بطريقة سهلة وفعالة.

الخطوة 3. فحص 

هذه الخطوة حاسمة للنجاح. من المهم جدًا أن يتم اختبار الـ API و فحصه بحثًا عن الأخطاء والعيوب ، و تكون هناك مجموعة من المتطلبات اللازمة لاجتياز الفحص.

الخطوة 4. وصف و توثيق

رائع ، لقد انتهيت من مشروعك.و لقد تم فحصه والأن توثيق مشروعك مهم جدًا للمستخدم النهائي. 

الخطوة 5. نشر النموذج الأولي

يعد قياس الـ API والاستماع إلى التعليقات أثناء كل مرحلة مفتاح نجاح API.

هناك طرق عديدة لجمع التعليقات حول API الخاص بك , قد تساعد ملاحظاتهم في تحسين أداء وأمن الـ API , هنا يمكنك معرفة ما إذا كان الـ API يقدم ما هو متوقع.

تم التعديل في بواسطة zonasabri
رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ On 12/15/2020 at 20:46 قال Talaat Magdy:

 

سوف نستخدم ذلك لينك عباره عن get api -- لجلب مقالات https://jsonplaceholder.typicode.com/posts
شكل داتا 
 


[{
    "userId": 1,
    "id": 1,
    "title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
    "body": "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto"
  },
  {
    "userId": 1,
    "id": 2,
    "title": "qui est esse",
    "body": "est rerum tempore vitae\nsequi sint nihil reprehenderit dolor beatae ea dolores neque\nfugiat blanditiis voluptate porro vel nihil molestiae ut reiciendis\nqui aperiam non debitis possimus qui neque nisi nulla"
  },
  {
    "userId": 1,
    "id": 3,
    "title": "ea molestias quasi exercitationem repellat qui ipsa sit aut",
    "body": "et iusto sed quo iure\nvoluptatem occaecati omnis eligendi aut ad\nvoluptatem doloribus vel accusantium quis pariatur\nmolestiae porro eius odio et labore et velit aut"
  }

اين ساستخدم هذه👆👆

 

كيفية استدام مكتبة في اتصال ب API 
 


 Retrofit retrofit = new Retrofit.Builder()
            .baseUrl("https://jsonplaceholder.typicode.com/")
            .build();

ثم نربطه ب interface خاص بينا 
 


Call<List> call = placeholderAPI.getPosts();

نقوم بجلب داتا وربطه بالتصميم 
 


call.enqueue(new Callback<List>() {
            @Override
            public void onResponse(Call<List> call, Response<List> response) {

                if (response.isSuccessful()) { // للتأكد من كل شئ يقوم بجلب داتا
                    List posts = response.body();
                    Log.d("Success", posts.get(3).getBody().toString());
                    TextView textView = findViewById(R.id.text);
                    textView.setText(posts.get(3).getBody().toString());
                } else {
                    Log.d("Yo", "Boo!");
                    return;
                }
            }

            @Override
            public void onFailure(Call<List> call, Throwable t) {
                Log.d("Yo", "Errror!");
            }

        });


        Log.d("Yo","Hello!");
    }
}

 

لقد ظهر لي الخطأ التالي في كلاس PlaceholderAPI 

Screenshot_2020-12-16-21-18-25.thumb.png.acff1cf3056180855ce7d57d8c349444.png

يقول انني احتاج دالة اخرى وعندما اضغط اصلاح يظهر اقواس فقط وعندما احاول اضافة اكواد الخاصة ب placeholder يزداد الامر سوأ مثل الاتي:

Screenshot_2020-12-16-21-24-12.thumb.png.e6b1c64486836fa80ae3117518ac38e1.png

الخطأ

Screenshot_2020-12-16-21-19-29.thumb.png.86267fb3468e7f1b64e9b62f14cec43c.png

ما الحل؟، ارجو ان تشرح لي بشكل مفصل

تم التعديل في بواسطة الشيخ المختار الشنقيطس
...
رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ On 12/16/2020 at 23:14 قال الشيخ المختار الشنقيطس:

ما الحل؟، ارجو ان تشرح لي بشكل مفصل

هل من الممكن إرفاق مجلد مشروع ؟ أو تفضل أن اشرح لك علي مشروع جديد ؟ من البداية

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 21 ساعات قال Talaat Magdy:

هل من الممكن إرفاق مجلد مشروع ؟ أو تفضل أن اشرح لك علي مشروع جديد ؟ من البداية

تفضل هذا هذا المشروع على GitHub، ارجو ان تشرح لي في التعليقات على المشروع او هنا وشكرا

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...