0Pricing
Supabase Backend as a Service · درس

نشر وظيفتكم الأولى

اكتبوا Edge Function بسيطة وانشروها للتعامل مع نقاط نهاية API مخصّصة أو منطق الواجهة الخلفية مباشرةً من مشروع Supabase لديكم.

نشر وظيفتكم الأولى درس مجاني في Supabase Backend as a Service على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Supabase Backend as a Service، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Supabase Backend as a Service 4 دروس في المجموع.

بعض أجزاء هذا الدرس لم تُترجم بعد وتظهر باللغة الإنجليزية.

Making Your Code Go Live

Welcome to deploying your first Supabase Edge Function! This lesson will guide you through taking your function code and making it accessible via an API endpoint.

Deploying means publishing your function so it can be called from your app, a web browser, or other services. It's how your backend logic goes live!

The Supabase CLI

To deploy Edge Functions, you'll primarily use the Supabase Command Line Interface (CLI). This tool helps you manage your Supabase project locally and interact with your remote backend.

  • Ensure the CLI is installed and configured for your project.
  • You'll use commands like supabase functions new and supabase functions deploy.

Creating a New Function

Let's start by creating a new Edge Function. Navigate to your project's root directory in your terminal and use the supabase functions new command:

This command creates a new folder for your function with an index.ts file, which is where your Deno (TypeScript/JavaScript) code will live.

supabase functions new my-first-function

Function Code Structure

After creating the function, you'll find a new directory (e.g., supabase/functions/my-first-function) containing an index.ts file. This file is the entry point for your Edge Function.

Supabase Edge Functions are built on Deno, a secure runtime for JavaScript and TypeScript. They export a default function that handles incoming HTTP requests.

Writing a Simple Function

Now, let's write a basic 'Hello, World!' function. Open the index.ts file inside your new function's directory and replace its content with the following code:

This function simply returns a plain text response. It's a great starting point!

import { serve } from 'https://deno.land/std@0.177.0/http/server.ts'

serve(async (req) => {
  return new Response("Hello from your first Edge Function!", {
    headers: { 'Content-Type': 'text/plain' },
  })
})

Deploying Your Function

With your code ready, it's time to deploy! Use the supabase functions deploy command, specifying your function's name:

The CLI will build your function and upload it to your Supabase project. Once deployed, it becomes a live API endpoint!

supabase functions deploy my-first-function

Invoking with cURL

After deployment, you can test your function. The easiest way is using cURL in your terminal. You'll need your Supabase project URL and your project's Anon Key (found in your project settings).

Replace the placeholders with your actual project details:

curl -X POST 'https://your-project-ref.supabase.co/functions/v1/my-first-function' \
  -H 'Authorization: Bearer YOUR_ANON_KEY' \
  -H 'Content-Type: application/json' \
  -d '{}'

Invoking from Web (JS)

You can also call your Edge Function from any web application using standard fetch API. Here's how you might invoke it from client-side JavaScript:

Remember to replace the placeholder URL and key with your actual project details.

async function callMyFunction() {
  const SUPABASE_URL = "https://your-project-ref.supabase.co";
  const SUPABASE_ANON_KEY = "YOUR_ANON_KEY";

  try {
    const res = await fetch(
      `${SUPABASE_URL}/functions/v1/my-first-function`,
      {
        method: 'POST',
        headers: {
          'Authorization': `Bearer ${SUPABASE_ANON_KEY}`,
          'Content-Type': 'application/json',
        },
        body: JSON.stringify({})
      }
    )
    const data = await res.text() // Use .text() for plain text response
    console.log(data)
  } catch (error) {
    console.error("Error calling function:", error)
  }
}

callMyFunction()

Passing Data & Redeploying

Functions are more useful when they can accept input! Let's update our function to take a name from the request body and respond with a personalized greeting.

After modifying the index.ts file, you'll need to run supabase functions deploy my-first-function again to push the changes live.

import { serve } from 'https://deno.land/std@0.177.0/http/server.ts'

serve(async (req) => {
  const { name } = await req.json() // Expects { "name": "..." }
  const greeting = name ? `Hello, ${name}!` : "Hello there!"

  return new Response(
    JSON.stringify({ message: greeting }),
    { headers: { 'Content-Type': 'application/json' } },
  )
})

Quick Check: Deployment Steps

Which of the following is the correct sequence of steps to deploy a Supabase Edge Function after writing its code?

Recap: Your First Deployment!

You've successfully deployed your first Supabase Edge Function! Here's what we covered:

  • Used the Supabase CLI to manage functions.
  • Created a new function with supabase functions new.
  • Wrote a simple Deno function in index.ts.
  • Deployed it using supabase functions deploy.
  • Invoked the function using cURL and client-side JavaScript.
  • Learned to pass data to functions and redeploy changes.

Now you have a live backend endpoint ready for action!

الأسئلة الشائعة

هل درس «نشر وظيفتكم الأولى» مجاني؟

نعم — نص درس «نشر وظيفتكم الأولى» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Supabase Backend as a Service، انتقل إلى CoddyKit PRO. تتضمن دورة Supabase Backend as a Service 4 دروس في المجموع.

ماذا ستتعلم في «نشر وظيفتكم الأولى»؟

اكتبوا Edge Function بسيطة وانشروها للتعامل مع نقاط نهاية API مخصّصة أو منطق الواجهة الخلفية مباشرةً من مشروع Supabase لديكم. تتمرن على Supabase Backend as a Service مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Supabase Backend as a Service؟

لا تُشترط خبرة سابقة. Supabase Backend as a Service على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.

كم من الوقت يستغرق درس «نشر وظيفتكم الأولى»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Supabase Backend as a Service هذا؟

نعم. كل درس في Supabase Backend as a Service يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. مقدمة إلى Edge Functions
  2. نشر وظيفتكم الأولى
  3. دمج الوظائف مع تطبيقكم
  4. الأسرار ومتغيرات البيئة والوظائف المجدولة
← العودة إلى Supabase Backend as a Service