Noloco
Ask the CommunityHire an ExpertLoginSign up
  • Noloco Overview
  • 🚀Quickstart
    • Start with your data
    • Start with AI
    • Start with a template
  • Data to App
    • Database Consolidation
  • App Settings
  • Components
    • Containers
    • Video
  • Templates
  • 🔗Data Sources
    • Data Overview
      • Setting a Collection's Primary Field
      • Syncing
    • Noloco Tables
      • Field Types
      • Relationships
      • Automatic Links
      • Rollup Fields
      • Lookup Fields
      • Formulas
      • Noloco AI
      • Import a file
    • Airtable
    • Google Sheets
    • SmartSuite
    • MySQL
    • PostgreSQL
    • REST APIs
    • HubSpot
    • Xano
  • 📄Pages
    • Collection views
      • Show collection record count
      • Empty State
    • Blank pages
    • iFrame embeds
    • External links
    • The Home Page
    • User Profile Page
    • Parent pages & folders
    • Page visibility rules
    • Cloning pages
    • Renaming pages
    • Hiding pages
    • Sidebar dividers
    • Tabs
  • 📂Collections
    • Adding collection views
    • Display
      • Rows
      • Cards & columns
      • Tables
      • Kanban boards
      • Calendar
      • Timeline
      • Gantt
      • Split-view
      • Charts
      • Maps
      • Pivot Table
      • Single record view
      • Grouping records
      • Record Colors
    • Filters
      • Logged in user
      • Relative Filters
      • Record values
    • Filter fields
    • Sort & limit
    • Row Action
    • Column Summaries
  • 📝Forms
    • Forms
      • Customizing Form Fields
      • Passing Linked Record Values to a Form
      • Dynamic Form Field Filters
      • E-Signature Fields
    • Public Forms
  • 📃Record Pages
    • Overview
    • Visibility Settings
    • Hidden Field Values
    • Record Comments
  • ✏️Field Formatting
    • Field visibility conditions
    • In-line editing
    • Conditional Highlight Colors
    • Dates & Time Zones
  • 📊Charts
    • Overview
  • 📂Data Management
    • Export Data
    • Import Data
  • 👥Users & Permissions
    • User Table
    • User Management
    • User Roles & Permissions
      • Record-level permissions
      • Field-level permissions
    • Open Sign Up
    • Offboarding Users
    • Testing as other users
  • ⏩Actions
    • Action buttons
      • Create records
      • Update records
      • Bulk actions
      • Barcode Scanner
      • Add a Comment Action
  • ⚡Workflows
    • Workflows
      • On-demand workflows
      • Comment Added Trigger
      • Watched Fields
      • Trigger webhooks
      • Send automated emails
      • For each item in a list...do...
      • Only continue if
      • Create a Record Action
      • Update a Record Action
      • Delete a Record Action
      • Deactivate a User Action
      • Reactivate a User Action
      • Send an Invitation Email Action
      • Add a comment to a record
      • Send a Push Notification
      • Ask Chat GPT Action
      • Summarize Text Action
      • Correct Grammar Action
      • Extract Keywords Action
      • Analyze Sentiment
      • Finish Text Action
      • Send a message to a Slack Channel
      • Send a message to a Slack User
      • Generate a PDF with DocsAutomator
  • 🔔Notifications
    • Notifications
    • Notification Preferences
  • 📑API Documentation
    • API Overview
      • Fetching Records
      • Fetching a Record
      • Creating a Record
      • Update a Record
      • Deleting a record
  • ⚙️Settings
    • General Settings
      • Live Mode
      • Custom Logos
    • Theme & Design
    • Progressive web apps
    • Navigation Settings
    • Spaces
    • Email Settings
    • Custom Code
    • Custom Domain
    • Login & Signup
      • Sign in Options
      • Single Sign On
      • 2FA - Two Factor Authentication
      • Client Portal User Add-On
    • Login Screen
    • User Lists
    • Integrations & API Keys
    • Billing & Usage
    • Support
    • Publishing
      • App Version History
  • 🔄Integrations
    • Zapier
    • Make (Integromat)
    • Sign in With Google
    • Intercom
    • SMTP Emails
    • Documint
  • ⚙️Account
    • Workspaces
    • Pricing
      • Client Portal Add-on (Legacy)
    • Transferring an App
    • Onboarding Call Preparation
Powered by GitBook
On this page
  • Basic Query Structure
  • The edges, node, and pageInfo Pattern
  • Example Query
  • Conclusion
  1. API Documentation
  2. API Overview

Fetching Records

Fetch records from the API

PreviousAPI OverviewNextFetching a Record

Last updated 1 year ago

Fetching data is a fundamental operation when working with APIs. In Noloco's dynamic GraphQL API, this is accomplished using GraphQL Queries. This guide will introduce you to the pattern and arguments used to fetch records with precision and efficiency.

Basic Query Structure

Queries for fetching records are named based on the table you're looking to retrieve data from. The naming convention is <tableName>Collection, where <tableName> represents the name of your table. For instance:

  • To fetch projects, use projectsCollection.

  • To fetch users, use usersCollection.

The edges, node, and pageInfo Pattern

This structure allows you to navigate through your data with ease:

  • edges: This represents the connection between nodes. Within edges, you can query the node to access the fields of that record.

  • pageInfo: Contains metadata about the current page of results, useful for pagination. Fields commonly available include hasNextPage, hasPreviousPage, and startCursor.

Example Query

Let's assume we have the following Client Portal Noloco App, with a Project table

You can fetch all of the projects and their name with the following GraphQL Query:

query {
  projectsCollection {
    edges {
      node {
        id
        uuid
        name
      }
    }
    pageInfo {
      hasNextPage
    }
  }
}

3. Query Arguments

You can refine your data retrieval using the following arguments:

  • first: Limits the number of records returned. For example, first: 5 will return only the first five records.

  • before: Cursor for pagination. Used in combination with pageInfo to retrieve records before a certain point.

  • after: Cursor for pagination. Used in combination with pageInfo to retrieve records after a certain point.

  • orderBy: An object that specifies which field to sort by and the direction of sorting. Example: orderBy: { field: "name", direction: "ASC" }.

  • where: Allows you to filter records based on field values. The structure of the filter object varies depending on the field type. For instance, for a text field, you might use: where: { fieldName: { equals: "desiredValue" } }.

Example Query with Arguments

Here's how you might fetch the first 10 projects, ordered by name:

query {
  projectsCollection(first: 10, orderBy: {field: "name", direction: ASC}) {
    edges {
      node {
        id
        name
      }
    }
  }
}

Conclusion

Noloco's integration with GraphQL provides a powerful and flexible way to fetch and manipulate data. With a solid understanding of the patterns and arguments available, you can tailor your queries to retrieve precisely the data you need. As you become more accustomed to these structures, you'll find it becomes second nature to craft efficient and effective queries.

📑