Part 5: Integrating AWS Amplify API and Frontend

Part 5: Integrating AWS Amplify API and Frontend

Amplify API

ยท

3 min read

Github Repo: DentalArt ๐Ÿ”„๐Ÿ”—

In this part of our blog series, we'll dive into the exciting process of integrating our AWS Amplify API with the frontend of our Dental Clinic Management System. We'll cover step-by-step explanations and provide code examples for GraphQL operations, including queries and mutations, to perform CRUD operations on data models in our schema. Let's get started! ๐Ÿš€๐Ÿฅ๐Ÿ”

Ensure that you have already initialized your Amplify project and added the GraphQL API, as explained in Part 3. If you haven't done this yet, please follow the instructions there before proceeding.

Step 2: Understanding GraphQL Operations

GraphQL enables us to interact with our backend by performing operations like queries, mutations, and subscriptions.

  • Queries: Used to fetch data from the server. In our Dental Clinic Management System, we can use queries to retrieve information such as patients, appointments, staff, and tasks.

  • Mutations: Used to modify data on the server. We'll use mutations for operations like creating new appointments, updating staff information, and adding tasks.

Step 3: Performing CRUD Operations

Now, let's dive into code examples for CRUD operations on our data models using GraphQL.

Example 1: Fetching Appointments (Query)

import { API, graphqlOperation } from 'aws-amplify';
import { listAppointments } from './graphql/queries';

const fetchAppointments = async () => {
  try {
    const response = await API.graphql(graphqlOperation(listAppointments));
    const appointments = response.data.listAppointments.items;
    // Use the appointments data
  } catch (error) {
    // Handle error
    console.log('Error fetching appointments:', error);
  }
};

Example 2: Creating a New Task (Mutation)

import { API, graphqlOperation } from 'aws-amplify';
import { createTasks } from './graphql/mutations';

const addNewTask = async (taskData) => {
  try {
    const response = await API.graphql(graphqlOperation(createTasks, { input: taskData }));
    const newTask = response.data.createTasks;
    // Do something with the newly created task
  } catch (error) {
    // Handle error
    console.log('Error creating a new task:', error);
  }
};

// Usage:
const taskData = {
  title: 'Task Title',
  date_created: '2023-08-01T10:00:00Z',
  date_due: '2023-08-05T10:00:00Z',
  details: 'Task details',
  staff_assigned: ['staff-id-1', 'staff-id-2'],
};

addNewTask(taskData);

Step 4: Connecting GraphQL API to the Frontend

To connect the GraphQL API to our frontend, we can use the Amplify API object along with graphqlOperation to perform queries and mutations. Ensure that you have the necessary GraphQL query and mutation documents in the correct file locations (usually under src/graphql).

Step 5: Using Amplify API for Data Interaction

Now that we have successfully integrated the GraphQL API with our front end, we can perform various data interactions based on user actions. For example, when a receptionist schedules an appointment, we can use a mutation to add the appointment to the backend. Similarly, when a staff member marks an appointment as "Done," we can use another mutation to update the appointment status.

Advantages of using AWS Amplify API

  • Simplified data interactions: Amplify API abstracts the complexities of handling GraphQL operations, making data interactions seamless and straightforward.

  • Real-time data updates: Amplify provides real-time subscriptions, allowing our frontend to respond to changes in the backend data instantly.

Disadvantages of using AWS Amplify API

  • Limited customization: While Amplify API simplifies common data operations, it might have some limitations in terms of customizing complex data queries.

By following these steps and using the Amplify API, we have successfully integrated our backend with the frontend of our Dental Clinic Management System. Now, our app is ready to handle real data and provide a seamless experience to our users! ๐ŸŒ๐Ÿฆท๐Ÿš€

In the next part of our series, we'll focus on building the frontend user interfaces using AWS Amplify UI components and React. Stay tuned for more exciting updates! ๐Ÿ˜„๐Ÿ’ป๐ŸŽ‰

Feel free to share your thoughts and questions in the comments below. Happy coding!

ย