Network Optix News

Nx Oceania Newsletter - Issue 6 - Network Optix

Written by Network Optix | Jan 24, 2024 12:57:36 AM
Nx Oceania Newsletter Issue No.6, January 2024
 

Contents

1. Network Optix Announces Its Acquisition of Scailable BV
2. Ten Highlights from 2023
3. New Integration: Gallagher Command Center & Nx Witness VMS
4. Support Article: Exploring the Fundamentals of CRUD and REST APIs with a Focus on the Latest Nx Witness API

2023 proved to be an exceptional year for Network Optix and the Oceania team. From securing a spot on the Inc. 5000 Fastest Growing Companies in America list for the seventh consecutive year to hosting the largest show to date organized by Nx at ASIAL 2023, it's been quite a journey. Let's delve into the highlights that made 2023 truly unforgettable:

 
 

 

3. Gallagher Command Centre & Nx Witness VMS

Experience heightened security efficiency with the seamless integration of Gallagher and Nx Witness VMS, allowing for effortless streaming of live video from Nx Witness to Gallagher Command Centre. This integration simplifies control, offering customizable camera tiles, quick response to motion or event-triggered alarms, and seamless access to stored video. Using the combined solution, operators can capture frames in stunning 4K resolution, adjust camera settings, and seamlessly toggle between live and stored footage.

 

 
 
To learn more about the integration visit the Gallagher Integrations Page.
 

 

4. Exploring the Fundamentals of CRUD and REST APIs with a Focus on the Latest Nx Witness API

In software development, engineers commonly encounter the terms CRUD, also known as Create, Read, Update, and Delete, and REST or REST API, also known as Representational State Transfer Application Programming Interface. Developing a comprehensive understanding of these concepts and their respective benefits is essential for proficiently developing web applications or leveraging web APIs. This article aims to provide insights into CRUD and REST, using Nx Witness's latest API as an illustrative example of RESTful transformation.

 

 

What is CRUD?

CRUD is an acronym that stands for Create, Read, Update, and Delete. It represents the four essential functions to implement a persistent storage application. Here is a brief explanation of each operation:

  • Create: This operation refers to the action of allocating a location in storage or adding new data to a database. For instance, when you add a user or a camera to the Nx system.
  • Read: The "Read" operation involves retrieving or accessing data from a database or storage. It allows users or applications to view or retrieve existing information. When you log in to an Nx Witness system and view camera details, you are performing a "Read" operation on the database.
  • Update: The "Update" operation involves modifying or changing existing data. This task may include changing a user’s password or configuring the recording schedule of a camera, and it is executed through the Update operation.
  • Delete: The "Delete" operation is the process of deallocating a location from storage or removing data from a database. For example, when you delete a camera or a user from an Nx Witness system, you are executing a "Delete" operation.
CRUD operations are the essential interactions between users and data in software development, including web, mobile apps, and various management systems. Each of them has its requirements for data management and manipulation.
 

What is REST?

REST is an architectural style rather than a standard or protocol. REST stands for Representational State Transfer Application Programming Interface. This may not be a familiar topic for you, so let us delve deeper into what it is, what it is used for, and what you can do with it. REST APIs are almost always accessed over HTTP or HTTPS. This gives REST one of its greatest strengths – it is ubiquitous. It is one of the standards that drives the Internet. As a result, it is a technology that is understood and utilized by most developers.

Another one of REST API’s greatest strengths is simplicity. Existing integration tools like SOAP, XML-RPC, and others were very flexible and powerful but harder to work with because they weren’t supported in browsers.

Primarily, HTTP-based RESTful APIs are characterized by the following components:

  1. A base URI, such as http://api.example.com/collection/.
  2. Standard HTTP methods (e.g., GET, POST, PUT, PATCH, and DELETE).
  3. A media type that defines state transition data elements. The current representation informs the client on how to compose requests for transitions to all the next available application states. This could range from a simple URI to a more complex entity like a Java applet.

RESTful APIs are web service APIs that adhere to REST constraints. These constraints dictate the methods a server can employ to process and respond to client requests. They were devised to ensure that software developed with a REST architecture exhibits good performance, scalability, simplicity, malleability, portability, and reliability.

  1. Client-Server Architecture: A client-server architecture segregates the user interface (client) from data processing and storage (server). This enhances system portability, scalability, and malleability, allowing modifications on the fly.
  2. Statelessness: Statelessness requires no continuous connection between the client and the server. Each client request must contain all the necessary information for execution, ensuring reliability in the interface between clients and servers.
  3. Cacheability: Caching involves strategically storing information for quick access. For example, web browsers cache data from websites to expedite reloading. When implemented effectively, caching significantly improves the scalability and performance of an application.
  4. Layered System: A layered system conceals the server's identity from clients. This approach also enables servers to call other servers within a system to generate a response for any connected client. It enhances system scalability through load balancing and shared caches.
  5. Code On-Demand: Code on Demand allows servers to temporarily enhance or customize client functionality by transferring executable code, such as Java applets or client-side JavaScript. This feature increases the malleability of an application built on a REST API.
  6. Uniform Interface: The uniform interface constraint is fundamental to RESTful system design. It simplifies and decouples the architecture, allowing each part of the system (e.g., client or server) to evolve independently. This enhances system flexibility and ease of maintenance.
 

REST and CRUD: Working in Harmony

The earlier information in this article aimed to give you a basic understanding of REST and CRUD. To recap, CRUD represents four basic operations related to persistent storage or databases, while REST is an architectural style rather than a standard or protocol.

In the realm of web development, developers typically adhere to REST principles when designing API architectures to accomplish CRUD operations on databases. However, it's crucial to note that REST APIs are not confined to CRUD operations exclusively. They extend beyond these fundamentals, enabling clients to execute a diverse array of operations, including tasks like initiating a server reboot or creating a database backup.

 


Nx Witness Version v5.0 - Refined REST API

To enhance maintainability, several refinements have been implemented in the APIs since the release of Nx Witness v5.0:

  1. All RESTful endpoints are now in lowercase. For example, replace /ec2/getUsers with /rest/v2/users.
  2. The RESTful endpoint exclusively contains the target resource (e.g., the user account), and the operation on the targeted resource is mapped to the appropriate HTTP methods. For instance, use HTTP DELETE /rest/v2/users/{id} instead of HTTP POST /ec2/removeUser.
  3. Version information has been added to the RESTful endpoint. For example, /rest/v1/users or /rest/v2/server.

These improvements enable developers to comprehend the functions and behaviors of a specific API more clearly. Let’s explore the following examples:

 

CRUD operations

HTTP Method

RESTful endpoint

Purpose

Create

POST

/rest/v2/users

Create a user

Read

GET

/rest/v2/users

Get all users

Update

PUT

/rest/v2/users/{id}

Replace all info for the specific user

Update

PATCH

/rest/v2/users/{id}

Update partial info for the specific user

Delete

DELETE

/rest/v2/users/{id}

Remove the specific user

 

Nx Witness Version v5.0 introduced significant enhancements to its REST API, aligning with a commitment to continual improvement. The adoption of lowercase RESTful endpoints, resource-specific operations, and version information contributes to a more user-friendly experience for our partners. For further details on optimizing API usage or any inquiries, contact support@networkoptix.com.