كيفية بناء واختبار واجهة برمجة تطبيقات Spring Boot باستخدام Apidog

تعلم كيفية إنشاء واجهة برمجة تطبيقات RESTful بسيطة باستخدام Spring Boot واختبارها بأداة تسمى APIdog. Spring Boot هو إطار عمل يسهل تطوير الويب باستخدام Java. Apidog هي أداة تساعدك في اختبار وتصحيح واجهات برمجة التطبيقات الخاصة بك.

Amir Hassan

Amir Hassan

31 مايو 2025

كيفية بناء واختبار واجهة برمجة تطبيقات Spring Boot باستخدام Apidog

هل رغبت يومًا في إنشاء تطبيق ويب أو خدمة صغيرة باستخدام Java، ولكن شعرت بالإرهاق بسبب التعقيد والتكوين المطلوبين؟ إذا كان الأمر كذلك، فأنت لست وحدك. يواجه العديد من المطورين تحديات تطوير الويب، مثل إعداد الخادم، وإدارة التبعيات، والتعامل مع قاعدة البيانات، وأكثر من ذلك.

لهذا السبب، يعتبر Spring Boot محوريًا في هذا المجال. Spring Boot هو إطار عمل يبسط تطوير الويب باستخدام Java. يوفر ميزات مثل الإعداد التلقائي، والخوادم المدمجة، وتبعيات البداية، وأكثر من ذلك. مع Spring Boot، يمكنك التركيز على كتابة منطق عملك، بدلاً من التعامل مع الكود النمطي.

ولكن إنشاء تطبيق ويب أو خدمة صغيرة ليس كافيًا. تحتاج أيضًا إلى اختباره. يعتبر الاختبار أمرًا بالغ الأهمية لضمان جودة وموثوقية برنامجك. يساعدك في العثور على الأخطاء وإصلاحها، وتحسين الأداء، ومنع الأخطاء.

هنا يأتي دور Apidog.

💡
Apidog هي أداة تساعدك في اختبار وتصحيح واجهات برمجة التطبيقات الخاصة بك. تتيح لك الاتصال بواجهة برمجة التطبيقات الخاصة بك واستكشاف النقاط النهائية، وإنشاء وتشغيل حالات الاختبار، وتوليد التقارير. مع Apidog، يمكنك اختبار واجهة برمجة التطبيقات الخاصة بك بشكل أسرع وأسهل، دون كتابة أي كود.
button

في هذه التدوينة، ستتعلم كيفية بناء واختبار واجهة برمجة تطبيقات Spring Boot باستخدام Apidog. ستقوم بإنشاء واجهة برمجة تطبيقات RESTful بسيطة باستخدام Spring Boot واختبارها باستخدام Apidog.

ما هو Spring Boot ولماذا تستخدمه؟

Spring Boot هو إطار عمل يبسط تطوير تطبيقات Spring. يوفر الكثير من الميزات والاتفاقيات التي تجعل من الأسهل إنشاء وتكوين وتشغيل ونشر تطبيقات Spring. بعض فوائد استخدام Spring Boot هي:

مع Spring Boot، يمكنك التركيز على كتابة منطق عملك ودع الإطار يتولى الباقي.

Spring boot officail website

ما هو Apidog وكيف يمكنه مساعدتك في اختبار واجهة برمجة التطبيقات الخاصة بك؟

Apidog هي أداة تساعدك في اختبار واجهات برمجة التطبيقات الخاصة بك بطريقة بسيطة وبديهية. تتيح لك الاتصال بواجهة برمجة التطبيقات الخاصة بك، واستكشاف النقاط النهائية، وإنشاء وتشغيل حالات الاختبار لواجهة برمجة التطبيقات الخاصة بك. بعض ميزات APIdog هي:

مع Apidog، يمكنك اختبار واجهة برمجة التطبيقات الخاصة بك بطريقة سريعة وموثوقة وضمان جودتها ووظيفتها.

Apidog main interface

إعداد المشروع

الخطوة الأولى هي إنشاء مشروع Spring Boot باستخدام Spring Initializr. Spring Initializr هي أداة ويب تولد هيكل مشروع أساسي وتكوين لك بناءً على تفضيلاتك. لاستخدام Spring Initializr، اتبع هذه الخطوات:

اذهب إلى https://start.spring.io/ واملأ تفاصيل مشروعك. في هذا المثال، سأستخدم الإعدادات التالية:

Setup Spring boot project

انقر على زر توليد لتنزيل ملف zip الخاص بمشروعك.

فك ضغط ملف zip وافتح المشروع في IDE المفضل لديك.

إضافة التبعيات لـ Spring Web وSpring Data JPA

الخطوة التالية هي إضافة التبعيات لـ Spring Web وSpring Data JPA. Spring Web هو وحدة توفر الدعم الأساسي لبناء واجهات برمجة التطبيقات RESTful باستخدام Spring. Spring Data JPA هي وحدة تبسط الوصول والتعامل مع البيانات في قواعد البيانات العلائقية باستخدام JPA وHibernate.

لإضافة هذه التبعيات، يمكنك استخدام Spring Initializr كما هو مذكور أعلاه، أو يمكنك تحرير ملف pom.xml الخاص بمشروعك يدويًا وإضافة التبعيات التالية:

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
  <groupId>com.h2database</groupId>
  <artifactId>h2</artifactId>
  <scope>runtime</scope>
</dependency>

تكوين خصائص التطبيق

الخطوة التالية هي تكوين خصائص التطبيق. يحتوي ملف application.properties على أزواج المفتاح-القيمة التي تحدد سلوك وإعدادات تطبيقك. في هذا المثال، سنستخدم الخصائص التالية:

# تمكين وحدة التحكم H2 للوصول إلى قاعدة البيانات
spring.h2.console.enabled=true
# تعيين مسار وحدة تحكم H2
spring.h2.console.path=/h2-console
# تعيين عنوان URL لقاعدة البيانات
spring.datasource.url=jdbc:h2:mem:testdb
# تعيين اسم مستخدم قاعدة البيانات
spring.datasource.username=sa
# تعيين كلمة مرور قاعدة البيانات
spring.datasource.password=
# تعيين لهجة قاعدة البيانات
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
# إظهار جمل SQL في وحدة التحكم
spring.jpa.show-sql=true
# إنشاء مخطط قاعدة البيانات من صفوف الكيانات
spring.jpa.hibernate.ddl-auto=update
# تمكين واجهة مستخدم Swagger لتوثيق واجهة برمجة التطبيقات
springdoc.swagger-ui.enabled=true
# تعيين مسار واجهة مستخدم Swagger
springdoc.swagger-ui.path=/swagger-ui.html

إنشاء واجهة برمجة التطبيقات

الخطوة التالية هي إنشاء واجهة برمجة التطبيقات. ستتكون واجهة برمجة التطبيقات من نموذج مجال، ومستودع، وcontroller لعنصر بسيط يسمى Book. سيكون للكتاب الخصائص التالية: id، title، author، و price.

إنشاء نموذج المجال ومستودع لعنصر بسيط

نموذج المجال هو فئة تمثل البيانات والسلوك للعنصر. المستودع هو واجهة تمتد إلى واجهة JpaRepository وتوفر الأساليب للوصول إلى البيانات والتعامل معها للعنصر.

لإنشاء نموذج المجال والمستودع لعنصر الكتاب، اتبع هذه الخطوات:

يجب أن تبدو فئة Book.java على النحو التالي:

package com.example.apidogdemo.model;

import javax.persistence.*;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;

@Entity
@Table(name = "books")
public class Book {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @Column(name = "title")
    @NotNull
    private String title;

    @Column(name = "author")
    @NotNull
    private String author;

    @Column(name = "price")
    @NotNull
    private BigDecimal price;

    public Book() {
    }

    public Book(Long id, String title, String author, BigDecimal price) {
        this.id = id;
        this.title = title;
        this.author = author;
        this.price = price;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getAuthor() {
        return author;
    }

    public void setAuthor(String author) {
        this.author = author;
    }

    public BigDecimal getPrice() {
        return price;
    }

    public void setPrice(BigDecimal price) {
        this.price = price;
    }

    @Override
    public String toString() {
        return "Book{" +
                "id=" + id +
                ", title='" + title + '\'' +
                ", author='" + author + '\'' +
                ", price=" + price +
                '}';
    }
}

يجب أن تبدو واجهة BookRepository.java على النحو التالي:

package com.example.apidogdemo.repository;

import com.example.apidogdemo.model.Book;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

@Repository
public interface BookRepository extends JpaRepository<Book, Long> {
    // يمكنك تعريف طرق مخصصة هنا
}

إنشاء وحدة تحكم وتعريف النقاط النهائية لعمليات CRUD

وحدة التحكم هي فئة تعالج الطلبات والاستجابات الخاصة بواجهة برمجة التطبيقات. تحدد وحدة التحكم النقاط النهائية لعمليات CRUD (إنشاء، قراءة، تحديث، وحذف) للكيان.

لإنشاء وحدة التحكم وتعريف النقاط النهائية للكيان Book، اتبع هذه الخطوات:

يجب أن تبدو فئة BookController.java على النحو التالي:

package com.example.apidogdemo.controller;

import com.example.apidogdemo.model.Book;
import com.example.apidogdemo.repository.BookRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.server.ResponseStatusException;

import javax.validation.Valid;
import java.util.List;
import java.util.Optional;

@RestController
@RequestMapping("/api/books")
public class BookController {

    @Autowired
    private BookRepository bookRepository;

    // احصل على جميع الكتب
    @GetMapping
    public ResponseEntity<List<Book>> getAllBooks() {
        List<Book> books = bookRepository.findAll();
        return new ResponseEntity<>(books, HttpStatus.OK);
    }

    // احصل على كتاب بواسطة id
    @GetMapping("/{id}")
    public ResponseEntity<Book> getBookById(@PathVariable Long id) {
        Optional<Book> book = bookRepository.findById(id);
        if (book.isPresent()) {
            return new ResponseEntity<>(book.get(), HttpStatus.OK);
        } else {
            throw new ResponseStatusException(HttpStatus.NOT_FOUND, "الكتاب غير موجود");
        }
    }

    // إنشاء كتاب
    @PostMapping
    public ResponseEntity<Book> createBook(@Valid @RequestBody Book book) {
        Book savedBook = bookRepository.save(book);
        return new ResponseEntity<>(savedBook, HttpStatus.CREATED);
    }

    // تحديث كتاب بواسطة id
    @PutMapping("/{id}")
    public ResponseEntity<Book> updateBook(@PathVariable Long id, @Valid @RequestBody Book book) {
        Optional<Book> existingBook = bookRepository.findById(id);
        if (existingBook.isPresent()) {
            book.setId(id);
            Book updatedBook = bookRepository.save(book);
            return new ResponseEntity<>(updatedBook, HttpStatus.OK);
        } else {
            throw new ResponseStatusException(HttpStatus.NOT_FOUND, "الكتاب غير موجود");
        }
    }

    // حذف كتاب بواسطة id
    @DeleteMapping("/{id}")
    public ResponseEntity<Void> deleteBook(@PathVariable Long id) {
        Optional<Book> existingBook = bookRepository.findById(id);
        if (existingBook.isPresent()) {
            bookRepository.deleteById(id);
            return new ResponseEntity<>(HttpStatus.NO_CONTENT);
        } else {
            throw new ResponseStatusException(HttpStatus.NOT_FOUND, "الكتاب غير موجود");
        }
    }

    // معالجة استثناءات التحقق
    @ExceptionHandler(javax.validation.ConstraintViolationException.class)
    @ResponseStatus(HttpStatus.BAD_REQUEST)
    public String handleValidationExceptions(javax.validation.ConstraintViolationException ex) {
        return ex.getMessage();
    }
}

اختبار واجهة برمجة تطبيقات Spring boot باستخدام APIdog

الخطوة النهائية هي اختبار واجهة برمجة التطبيقات باستخدام Apidog. Apidog هي أداة تساعدك في اختبار واجهات برمجة التطبيقات الخاصة بك بطريقة بسيطة وبديهية. تتيح لك الاتصال بواجهة برمجة التطبيقات الخاصة بك، واستكشاف النقاط النهائية، وإنشاء وتشغيل حالات الاختبار لواجهة برمجة التطبيقات الخاصة بك.

button

لاختبار واجهة برمجة التطبيقات باستخدام Apidog، اتبع هذه الخطوات:

Create new project
Enter details to create new project on Apidog
Select new API
Api endpoints list on apidog
Create a new test scenario on Apidog
Test cases scenarios on apidog

يمكنك استخدام منفذ الاختبار لتنفيذ حالات الاختبار الخاصة بك ورؤية الحالة والإخراج والأخطاء لكل اختبار. يمكنك استخدام مولد التقارير لإنشاء تقرير شامل وقابل للتخصيص حول نتائج اختبارك.

الخاتمة

في هذه التدوينة، تعلمت كيفية بناء واختبار واجهة برمجة تطبيقات Spring Boot باستخدام Apidog. لقد أنشأت واجهة برمجة تطبيقات RESTful بسيطة باستخدام Spring Boot واختبرتها باستخدام Apidog.

Spring Boot هو إطار عمل يبسط تطوير الويب باستخدام Java. يوفر ميزات مثل الإعداد التلقائي، والخوادم المدمجة، وتبعيات البداية، وأكثر من ذلك. مع Spring Boot، يمكنك التركيز على كتابة منطق عملك، بدلاً من التعامل مع الكود النمطي.

Apidog هي أداة تساعدك في اختبار وتصحيح واجهات برمجة التطبيقات الخاصة بك. تتيح لك الاتصال بواجهة برمجة التطبيقات الخاصة بك واستكشاف النقاط النهائية، وإنشاء وتشغيل حالات الاختبار، وتوليد التقارير. مع Apidog، يمكنك اختبار واجهة برمجة التطبيقات الخاصة بك بشكل أسرع وأسهل، دون كتابة أي كود.

button

Explore more

كيفية الوصول إلى واجهة برمجة تطبيقات كلود 3.7 سونيت واختبارها باستخدام أبادوغ

كيفية الوصول إلى واجهة برمجة تطبيقات كلود 3.7 سونيت واختبارها باستخدام أبادوغ

إذا كنت متحمسًا لإصدار Anthropic الأخير، Claude 3.7 Sonnet، وترغب في استكشاف قدراته من خلال واجهة برمجة التطبيقات (API) أثناء اختباره باستخدام Apidog، فأنت في المكان الصحيح. 💡قبل أن نبدأ، دعني أعطيك لمحة سريعة: قم بتنزيل Apidog مجانًا اليوم لتسهيل عملية اختبار واجهة برمجة التطبيقات الخاصة بك، خاصة لاستكشاف ميزات Claude 3.7 Sonnet القوية - مثالي للمطورين الذين يرغبون في اختبار نماذج الذكاء الاصطناعي المتطورة مثل هذا!زر لنبدأ بشرح لماذا يعد Claude 3.7 Sonnet مهمًا. كشفت Anthropic مؤخرًا عن هذا

25 فبراير 2025

[دليل] تحويل واجهات برمجة التطبيقات SOAP إلى واجهات برمجة التطبيقات REST

[دليل] تحويل واجهات برمجة التطبيقات SOAP إلى واجهات برمجة التطبيقات REST

تحويل واجهات برمجة التطبيقات SOAP إلى REST أصبح أكثر وضوحًا. تقدم واجهات REST مرونة وقابلية للتوسع وبساطة في تعزيز الاتصال بين نظامين أو برنامجين. في هذه المقالة، اكتشف ما تحتاجه لتحويل واجهات SOAP إلى REST!

29 فبراير 2024

قم بتنزيل وتثبيت إنسومنيا على ويندوز/ماكOS

قم بتنزيل وتثبيت إنسومنيا على ويندوز/ماكOS

إن الأرق هو أداة شائعة لإدارة واجهات برمجة التطبيقات بين المطورين. هنا سوف نوضح الخطوات اللازمة لتنزيلها وتثبيتها على نظام التشغيل الخاص بك، مثل ويندوز/لينكس/ماك أو إس، مجانًا.

27 فبراير 2024

ممارسة تصميم API في Apidog

اكتشف طريقة أسهل لبناء واستخدام واجهات برمجة التطبيقات