Skip to main content

Dart REST API Server CRUD Application with aqueduct


Dart is the programming language created by Google and its very popular nowadays because it's providing the platform using which we can create a single code base for developing an application for Android, IOS and Web with the help of Flutter SDK. Today in this article we are going to explore how to create a REST API using the dart without Flutter.





Here in this part of the article, we will explore two things.





  • Expose Simple REST API using the DART programming language
  • Connect Dart with the Postgress using the Model




Create REST API in DART with aqueduct





So for creating the rest API using the dart we are going to use the aqueduct package available at pub.dev. This package provides lots of functionality which help us for creating the REST API server.





Let's start the creation of our REST API server. We required some setup before starting the coding.





  • Dart should be installed into your server or local environment
  • We required a Postgres database installed in your dev environment.




Activate the Aqueduct package globally





First of all, we need to activate the aqueduct package globally using the below command.





pub global activate aqueduct




Create the package with the default example Route





We need to create a dart package with the help of aqueduct command-line tool.





aqueduct create nplix




Above command will create a dart project which enables us further for creating the rest API. This will create some important file for our projects. We will let you know some information about some important files.





  • main.dart :- This file is inside the bin folder and its main file of our project which will run our project.
  • nplix.dart:- This file is very important files of the project which will export the important package which was used by the application.
  • channel.dart:- This is file where we are going define the route of our project.




Defining the new route and testing the default API





This file is the entry point of our server application and its content flowing lines of the code by default.





import 'nplix.dart';
class NplixChannel extends ApplicationChannel {
@override
Future prepare() async {
logger.onRecord.listen((rec) => print("$rec ${rec.error ?? ""} ${rec.stackTrace ?? ""}"));
}
@override
Controller get entryPoint {
final router = Router();
router
.route("/example")
.linkFunction((request) async {
return Response.ok({"key": "value"});
});

return router;
}
}




If you look at the above code we have two override method prepare() and entryPoint(). The prepare method run before the entryPoint and its used to initialize the service of our rest API server application.





Let run the server and test the default route of our API.is http://localhost:8888/example and if go there you will get the below response.





{"key":"value"}




Perfect, Our rest API is working correctly. Let define our own AP.





Add route to our dart REST API server





For adding the new route to our app we just need to modify our entry point method and below lines of the code.





 router
.route("/user")
.linkFunction((request) async{
return Response.ok({"msg": "Welcome to Dart REST API!"});
});




If you look at the above code we have just added a new route with the user and link this route with the function which will respond with the msg. If you are working into visual code then just press the F5 and if it's already running then restart the application. Go the http://localhost:8888/user and you will get the response.





Link user route to Controller of our Dart REST API Server





For linking the route to the Controller we need to create a controller, so let's create our user controller. So let's create a folder inside of lib folder with the name of the controller and a class UserController.dart in that folder.





//user_controller.dart
import 'package:nplix/nplix.dart';

class UserController extends Controller{
@override
FutureOr<RequestOrResponse> handle(Request request) {
return Response.ok({"msg":"Welcome to Route Controller!"});
}

}




Perfect, We are ready to hook this controller with our user route. So let's modify the user root as given below in channel.dart file.





router
.route("/user")
.link(() => UserController());




So what happing here when the user hit the http://localhost:8888/user URL our router will provide the control to the UserController class and UserController class will be responsible for responding to the request. This is a very simple controller that we have created there a lot more that we can do, it just the beginning of the controller. Let' test the application by re-running our server.






C:\Users\Pawan>curl http://localhost:8888/user
{"msg":"Welcome to Route Controller!"}
C:\Users\Pawan>




Perfect, Our controller is working fine. Let's move further and define the request type like get, post and more in the controller.





I don' want to make this boring so ending this article here in the next part of this article we will hook the route with the different type of the HTTP method and will connect our REST API with the database. To be continued ...


Comments

  1. I agree with a lot of the points you made in this article. If you are looking for the Web Search Api, then visit SERP House. I appreciate the work you have put into this and hope you continue writing on this subject.

    ReplyDelete
  2. Hi to every single one, it’s truly a good for me to visit this web page, I love your content, they are very nice and it includes helpful Information. Check out our website API Development And Integration for more Metricoid Technology Solutions. related info! I am truly pleased to read this website posts which carries lots of helpful data, thanks for providing these kinds of statistics.

    ReplyDelete
  3. Su artículo contiene palabras valiosas con un lenguaje igualmente sencillo. Una obligación de agradecimiento es compartir este mensaje de apoyo. desarrollador app

    ReplyDelete
  4. Goodness, What an Amazing post. I really found this as well much teacher. It is the thing that I was searching for. I might need to propose that compassionate proceed to share such sort of info at thevicesolution


    ReplyDelete
  5. Clearly, It is an engaging blog for us which you have provided here about web design abu dhabi This is a great resource to enhance knowledge about it. Thank you.

    ReplyDelete

Post a Comment

Popular posts from this blog

Flutter How to Start Android Activity from Flutter View

Flutter and Dart is an excellent combination for creating the UI, but for accessing the platform-specific service we need to open platform-specific activity. So lets in this article we will explore how to start an android activity and access the service from Flutter View. Create a Project for this Android Activity Flutter View Demo Create a Project From File menu select the New Flutter Project Enter the project name Select the AndroidX support and click on next After the above, we step click on Finish We will have the following project structure created. Create the Second Activity in Android Just go to the android folder and open it in separate windows. We will have the following project structure. Create the Activity Just right-click on the Kotlin folder and create a blank activity from the menu. If you create the activity then you may be required to upgrade the Gradle and do some import. So Just click on update and wait for the project s

Kotlin Parcelable Array Objects Send To Activity

We know that IPC (Inter Process Communication) between the activity is an extremely important part of any application development. We often required that we need to send some data to other activity. For example, we may be required to send an array of data, data could be an Integer, String, Long, Double, Float or any other custom data objects. So, In this example, we are going to learn how to implement the Kotlin Parcelable Array object to send the data from one activity to second activity. What is Parcel? The parcel class is designed as a high-performance IPC transport. A Parcel can contain both flattened data that will be unflattened on the other side of the IPC, and references to live IBinde r objects that will result in the other side receiving a proxy IBinder connected with the original IBinder in the Parcel. Create Kotlin Parcelable Array Objects Parcelable is API for placing the arbitrary objects into the Parcel. In Actual in android app development, Parcelable is an interface

Create Custom EditText View in Android

We use the EditText for taking the input from the user and use it at several places in our project. We required to do lots of customization for each time and there are lots of redundant code we write. Writing and managing these redundant codes is very difficult for example if we want to change the look and feel of the view them we need to modify it at each place where our EditText is getting used. So to avoid these kinds of the problem we can create our own Custom EditText View by just. The EditText view is just an extension of the TextView with lots of editing option and properties that required for the user input. How To Create Custom EditText View For creating the Custom EditText we need to extend the AppCompatEditText and override all three constructors of the view as given below. import android.content.Context; import android.graphics.Typeface; import android.support.annotation.Nullable; import android.support.v7.widget.AppCompatEditText; import android.util.AttributeSet; public