From 0e953191c4964bf256e63956a8b3406c5d2a07a6 Mon Sep 17 00:00:00 2001 From: mbelenfa Date: Tue, 6 Jun 2017 20:05:06 -0400 Subject: [PATCH 01/13] NANCY.NET 2017 --- projects/MainModule.cs | 116 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 projects/MainModule.cs diff --git a/projects/MainModule.cs b/projects/MainModule.cs new file mode 100644 index 0000000..ada66f2 --- /dev/null +++ b/projects/MainModule.cs @@ -0,0 +1,116 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Text; +using Nancy; +using Nancy.ModelBinding; + + +namespace WebApplication1 +{ + +public class MainModule : NancyModule + { + private static List persons = new List() + { + new Person() { Name = "Kierkegaard", Lastname = "Shaw", Birthdate = "Inflated", Weight = 85.5, Height= 1.72}, + new Person() { Name = "Kierkegaard2", Lastname = "Shaw2", Birthdate = "Inflated2", Weight = 85.5, Height= 1.72} + }; + + + public MainModule() + { + Get["/person"] = Personlist; + + Get["/person/{id}"] = PersonId; + + Get["/person/{id}/health-profile"] = PersonHealth; + + Post["/person"] = PostPerson; + + Put["/person/{id}"] = PutPerson; + + Delete["/person/{id}"] = DeletePerson; + + } + // GET return the list of people in the database, with their health profiles, which should include at least weight and height. + private dynamic Personlist(dynamic parameters) + { + foreach (var item in persons) + item.Bmi = item.Weight / (item.Height * item.Height); + + return Response.AsJson(persons); + } + // GET returns the record for person with id 'personId' + private dynamic PersonId(dynamic parameters) + { + int id = (parameters.id - 1); + try + { + List results = new List() { + new HealthP() { Name = persons.ElementAt(id).Name, Lastname = persons.ElementAt(id).Lastname, Birthdate = persons.ElementAt(id).Birthdate} + }; + + return Response.AsJson(results); + } + catch (Exception) + { + return "no exite la persona"; + // throw; + } + + + + } + // GET returns the health-profile of 'personId' + private dynamic PersonHealth(dynamic parameters) + { + int id = (parameters.id - 1); + foreach (var item in persons) + item.Bmi = item.Weight / (item.Height * item.Height); + + try { + return Response.AsJson(persons.ElementAt(id)); + } + catch{ return "no exite la persona"; } + + } + //POST creates a new person in the system + private dynamic PostPerson(dynamic parameters) + { + var model = this.Bind(); + persons.Add(model); + return Response.AsJson(persons); + } + //PUT update information about the person + private dynamic PutPerson(dynamic parameters) + { + int id = (parameters.id - 1); + try + { + var model = this.Bind(); + persons.RemoveAt(id); + persons.Insert(id, model); + return Response.AsJson(persons); + } + catch { return "no exite la persona"; } + } + private dynamic DeletePerson(dynamic parameters) //DELETE deletes a person and her health profile + { + int id = (parameters.id - 1); + try + { + var itemToRemove = persons.ElementAt(id); + persons.Remove(itemToRemove); + return Response.AsJson(persons); + } + catch + { + return "no se puedo eliminar persona"; + } + } + + + } +} From e6605a7d63ed11c9307031ffa585c522e9e614a4 Mon Sep 17 00:00:00 2001 From: mbelenfa Date: Tue, 6 Jun 2017 20:06:02 -0400 Subject: [PATCH 02/13] Create HealthP.cs --- projects/HealthP.cs | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 projects/HealthP.cs diff --git a/projects/HealthP.cs b/projects/HealthP.cs new file mode 100644 index 0000000..b988fc6 --- /dev/null +++ b/projects/HealthP.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; + +namespace WebApplication1 +{ + public class HealthP + { + public string Name { get; set; } + public string Lastname { get; set; } + public string Birthdate { get; set; } + + } +} From a00268d7a7b428eb2d051c07f4d97d20b11b3a9d Mon Sep 17 00:00:00 2001 From: mbelenfa Date: Tue, 6 Jun 2017 20:06:50 -0400 Subject: [PATCH 03/13] Create Person.cs --- projects/Person.cs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 projects/Person.cs diff --git a/projects/Person.cs b/projects/Person.cs new file mode 100644 index 0000000..8e03d55 --- /dev/null +++ b/projects/Person.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; + +namespace WebApplication1 +{ + public class Person + { + public string Name { get; set; } + public string Lastname { get; set; } + public string Birthdate { get; set; } + public double Weight { get; set; } + public double Height { get; set; } + public double Bmi { get; set; } + + } +} From 1606e79c5ae29c0e7a73f4e472ad1304a8034599 Mon Sep 17 00:00:00 2001 From: mbelenfa Date: Tue, 6 Jun 2017 20:10:02 -0400 Subject: [PATCH 04/13] Rename projects/HealthP.cs to projects/NANCY.NET 2017/HealthP.cs --- projects/{ => NANCY.NET 2017}/HealthP.cs | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename projects/{ => NANCY.NET 2017}/HealthP.cs (100%) diff --git a/projects/HealthP.cs b/projects/NANCY.NET 2017/HealthP.cs similarity index 100% rename from projects/HealthP.cs rename to projects/NANCY.NET 2017/HealthP.cs From 4d67640544fad74202da9a5feeb74ece463e58cd Mon Sep 17 00:00:00 2001 From: mbelenfa Date: Tue, 6 Jun 2017 20:10:56 -0400 Subject: [PATCH 05/13] Rename projects/MainModule.cs to projects/NANCY.NET 2017/MainModule.cs --- projects/{ => NANCY.NET 2017}/MainModule.cs | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename projects/{ => NANCY.NET 2017}/MainModule.cs (100%) diff --git a/projects/MainModule.cs b/projects/NANCY.NET 2017/MainModule.cs similarity index 100% rename from projects/MainModule.cs rename to projects/NANCY.NET 2017/MainModule.cs From a097466b33deda2f04e33a638d51a99d37622bde Mon Sep 17 00:00:00 2001 From: mbelenfa Date: Tue, 6 Jun 2017 20:11:29 -0400 Subject: [PATCH 06/13] Rename projects/Person.cs to projects/NANCY.NET 2017/Person.cs --- projects/{ => NANCY.NET 2017}/Person.cs | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename projects/{ => NANCY.NET 2017}/Person.cs (100%) diff --git a/projects/Person.cs b/projects/NANCY.NET 2017/Person.cs similarity index 100% rename from projects/Person.cs rename to projects/NANCY.NET 2017/Person.cs From 58dbfacb3326e05508842351700734cf8a060f41 Mon Sep 17 00:00:00 2001 From: mbelenfa Date: Tue, 6 Jun 2017 20:14:23 -0400 Subject: [PATCH 07/13] Create README.md --- projects/README.md | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 projects/README.md diff --git a/projects/README.md b/projects/README.md new file mode 100644 index 0000000..d5a32c3 --- /dev/null +++ b/projects/README.md @@ -0,0 +1,26 @@ +NANCY.NET +The main inspiration is the Sinatra framework for Ruby and, hence, Nancy was named after the daughter of Frank Sinatra :) Many people wonder what Fx in NancyFx means so here it is (drum roll); it just means framework! NancyFx is the name of the umbrella project that contains all the components. +Nancy is a lightweight, low-ceremony, framework for building HTTP based services on .NET and Mono. The goal of the framework is to stay out of the way as much as possible and provide a super-duper-happy-path to all interactions. + +Before the lab +Set environment: +#Installation +-visual studio 2010 or higher, you can download on the official page of Microsoft: + +https://www.visualstudio.com/es/?rr=https%3A%2F%2Fwww.google.com.py%2F +For the installation of visual studio: +-Install the ASP.NET package. +It takes time the installation and when everything is installed we can start the lab. +Other program we need is fiddle so you can test the PUT, DELETE and POST +The installation its very simple just download from this page: +https://www.telerik.com/download/fiddler +For more information you can read in this page of microsoft https://docs.microsoft.com/en-us/azure/search/search-fiddler + +Getting Started: Install packages +Let's start exploring this framework. Open Visual Studio, and then create an "ASP.Net Empty Web Site" from "File" -> "New" -> "Project..." -> Web Site. +Now we need to install the Nancy Framework before starting coding, for that first ensure that the NuGet Packager is installed for your Visual Studio. +The NuGet Package Manager in Visual Studio is a GUI tool for managing packages and includes a PowerShell console through which you can use certain NuGet commands directly within Visual Studio. The Package Manager UI and Console are both included with Visual Studio 2012 and later and can be installed manually for earlier versions. +You can go to this page for more information: https://docs.microsoft.com/en-us/nuget/guides/install-nuget + +Once NuGet is installed, open the "Package Manager Console" from "Tools" -> "Library Package Manager" and run the following commands one after another. We can select the default project to which the installation should happen. + From 6094f3b72557dc9ba01a54ff69a6fa8879a7cfcd Mon Sep 17 00:00:00 2001 From: mbelenfa Date: Tue, 6 Jun 2017 21:34:46 -0400 Subject: [PATCH 08/13] Update README.md --- projects/README.md | 254 ++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 238 insertions(+), 16 deletions(-) diff --git a/projects/README.md b/projects/README.md index d5a32c3..b74ad51 100644 --- a/projects/README.md +++ b/projects/README.md @@ -1,26 +1,248 @@ -NANCY.NET +# NANCY.NET The main inspiration is the Sinatra framework for Ruby and, hence, Nancy was named after the daughter of Frank Sinatra :) Many people wonder what Fx in NancyFx means so here it is (drum roll); it just means framework! NancyFx is the name of the umbrella project that contains all the components. Nancy is a lightweight, low-ceremony, framework for building HTTP based services on .NET and Mono. The goal of the framework is to stay out of the way as much as possible and provide a super-duper-happy-path to all interactions. -Before the lab -Set environment: -#Installation --visual studio 2010 or higher, you can download on the official page of Microsoft: - -https://www.visualstudio.com/es/?rr=https%3A%2F%2Fwww.google.com.py%2F -For the installation of visual studio: --Install the ASP.NET package. +## Before the lab +**Set environment:** +two installation: +* visual studio +* fiddler + +Install visual studio 2010 or higher, you can download on the official page of [Microsoft](https://www.visualstudio.com/es/?rr=https%3A%2F%2Fwww.google.com.py%2F). + +* For the installation of visual studio: +##### Install the ASP.NET package. It takes time the installation and when everything is installed we can start the lab. -Other program we need is fiddle so you can test the PUT, DELETE and POST -The installation its very simple just download from this page: +Other program we need is `fiddler` so you can test the PUT, DELETE and POST +* The installation its very simple just download from this page: https://www.telerik.com/download/fiddler -For more information you can read in this page of microsoft https://docs.microsoft.com/en-us/azure/search/search-fiddler +For more information you can read in this page of microsoft: [fildder](https://docs.microsoft.com/en-us/azure/search/search-fiddler). -Getting Started: Install packages -Let's start exploring this framework. Open Visual Studio, and then create an "ASP.Net Empty Web Site" from "File" -> "New" -> "Project..." -> Web Site. +## Getting Started: Install packages +Let's start exploring this framework. Open Visual Studio and then: +``` create an "ASP.Net Empty Web Site" from "File" -> "New" -> "Project..." -> Web Site.``` Now we need to install the Nancy Framework before starting coding, for that first ensure that the NuGet Packager is installed for your Visual Studio. -The NuGet Package Manager in Visual Studio is a GUI tool for managing packages and includes a PowerShell console through which you can use certain NuGet commands directly within Visual Studio. The Package Manager UI and Console are both included with Visual Studio 2012 and later and can be installed manually for earlier versions. +`The NuGet Package Manager` in Visual Studio is a GUI tool for managing packages and includes a PowerShell console through which you can use certain NuGet commands directly within Visual Studio. The Package Manager UI and Console are both included with Visual Studio 2012 and later and can be installed manually for earlier versions. You can go to this page for more information: https://docs.microsoft.com/en-us/nuget/guides/install-nuget -Once NuGet is installed, open the "Package Manager Console" from "Tools" -> "Library Package Manager" and run the following commands one after another. We can select the default project to which the installation should happen. +Once NuGet is installed, open: +`"Package Manager Console" from "Tools" -> "Library Package Manager"` and run the following commands one after another. We can select the default project to which the installation should happen. +`PM > Install-Package Nancy` +We will get a successful installation message like: +``` +'Nancy 1.4.3' was successfully installed on WebApp the execution of +NuGet took 425,21 ms +``` +And at the same time another new file named packages.config will be added to the project. This file contains the framework version information. Whenever we add more Nancy packages this file will be updated with those new lists. +Also Nancy handler's information will +be updated into the web.config. Through these handlers Nancy runs and executes +the application. + +###### Getting Started: Write Code +Add a class file and give a name, here the example **“MainModule.cs"** has the following lines of codes. + +we have 3 classes: +1. MainModule.cs the principal +2. Person.cs the data structure of person +3. HealthP.cs data structure of healthprofile + +1. MainModule.cs : add this in your main module +``` +using Nancy; +using System; + +namespace WebApplication1 +{ + private static List persons = new List() + { + new Person() { Name = "Kierkegaard", Lastname = "Shaw", Status = "Inflated"}, + new Person() { Name = "Kierkegaard2", Lastname = "Shaw2", Status = "Inflated2"} + }; + public MainModule() + { + Get["/person"] = Personlist; + + } + private dynamic Personlist(dynamic parameters) + { + return Response.AsJson(persons); + } +} +``` +2. Person.cs +``` +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +namespace WebApplication1 +{ + public class Person + { + public string Name { get; set; } + public string Lastname { get; set; } + public string Birthdate { get; set; } + public double Weight { get; set; } + public double Height { get; set; } + public double Bmi { get; set; } + + } +} +``` + +3. HealthP.cs +``` +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; + +namespace WebApplication1 +{ + public class HealthP + { + public string Name { get; set; } + public string Lastname { get; set; } + public string Birthdate { get; set; } + + } +} +``` +A small change could be: + + +``` +using Nancy; +using Nancy.ModelBinding; + +namespace WebApplication1 +{ + +public class MainModule : NancyModule + { + private static List persons = new List() + { + new Person() { Name = "Kierkegaard", Lastname = "Shaw", Status = "Inflated"}, + new Person() { Name = "Kierkegaard2", Lastname = "Shaw2", Status = "Inflated2"} + }; + + + + public MainModule() + { + Get["/person"] = Personlist; + + Get["/person/{id}"] = PersonId; + + Post["/persons"] = parameters => + { + var model = this.Bind(); + persons.Add(model); + return Response.AsJson(persons); + }; + } + private dynamic Personlist(dynamic parameters) + { + return Response.AsJson(persons); + } + //here add this funtion + private dynamic PersonId(dynamic parameters) + { + int id = (parameters.id -1); + return Response.AsJson(persons.ElementAt(id)); + + } + } +} +``` + +**We have to edit MainModule by add PUT and DELETE** + +``` +public MainModule() + { + Get["/person"] = Personlist; + Get["/person/{id}"] = PersonId; + Get["/person/{id}/health-profile"] = PersonHealth; + Post["/person"] = PostPerson; + Put["/person/{id}"] = PutPerson; + Delete["/person/{id}"] = DeletePerson; + } + ``` + +> Now we add the modules PutPerson and DeletePerson + +It can be add in the same module or add a new class for each code, for example add new class named Putperson and copy the code **private dynamic PutPerson(dynamic parameters)** +It will be the same for **private dynamic DeletePerson(dynamic parameters)** or just leave in the same module class as we are. + + ``` + private dynamic PutPerson(dynamic parameters) //PUT update information about the person + { + int id = (parameters.id - 1); + var model = this.Bind(); + //persons.Add(model); + persons.RemoveAt(id); + persons.Insert(id, model); + return Response.AsJson(persons); + } +``` + +``` + private dynamic DeletePerson(dynamic parameters) //DELETE deletes a person and her health profile + { + int id = (parameters.id - 1); + //persons.RemoveAt(id);} + var itemToRemove = persons.ElementAt(id); + if (itemToRemove != null) + persons.Remove(itemToRemove); + return Response.AsJson(persons); + } +``` +## Code Explained +The `"NancyModule"` class is +referenced from the Nancy library and inherited into "MainModule". +Like Controllers in MVC there are Modules in Nancy. A Module defines the +behavior of the application. A single Module must be defined for a Nancy +application, which is the starting point of an application. We can create any +number of Modules inherited from NancyModule. MainModule is the constructor +having two routes defined, `Get["/"]` and +`Get["/Person/{id}"]`. GET, POST, PUT, DELETE, HEAD etc. are +Methods supported by Nancy. A Route must follow an exact pattern's like +Literal segments `("/Person/}")`, Capture segments `({id})` and Regular +Expressions. + + + + +## Getting Started: Run the application +It's done, now just hit F5. +``` +Output 1 -> Get["/"], pointing to the root folder. +Output 2 -> +Get[["/Person/{id}"], pointing to a route path. +``` +## Test POST, PUT and DELETE with Fiddle +###### Step 1: +>In Composer: Select POST and put `http://localhost:52961/persons` or + Select PUT and put `http://localhost:52961/person/id` or +Select DELETE and put `http://localhost:52961/person/id` +In the Request headers tab, enter a +JSON content type. +`Content-Type:application/json; charset=utf-8` +You need more info here but Fiddler +will fill the rest for you when you hit execute. +Put your JSON string array in the Request Body +* For POST method: +`:{"Name":"Andrea","Lastname":"Shaw3","Birthdate":"Inflated3",”Weight”:85.5, “Height”:1.72}` + + + +* For DELETE method: +In the composer select DELETE and put `http://localhost:52961/person/id` , the id you pick for example delete the first person on the list so we will put `http://localhost:52961/person/1` +`The list id 1 is: [{"name":"Kierkegaard","lastname":"Shaw","birthdate":"Inflated"}]` + +After enter you can check if the person was deleted put in the browser `http://localhost:52961/person` and should print this list: + `[{"name":"Kierkegaard2","lastname":"Shaw2","birthdate":"Inflated2","weight":85.5,"height":1.72,"bmi":28.9007571660357}]` + + From ddefdf0a60a4174dff60e6539ebb043221e49710 Mon Sep 17 00:00:00 2001 From: mbelenfa Date: Tue, 6 Jun 2017 21:38:21 -0400 Subject: [PATCH 09/13] Update README.md --- projects/README.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/projects/README.md b/projects/README.md index b74ad51..73a9c3f 100644 --- a/projects/README.md +++ b/projects/README.md @@ -4,7 +4,7 @@ Nancy is a lightweight, low-ceremony, framework for building HTTP based services ## Before the lab **Set environment:** -two installation: +two installations: * visual studio * fiddler @@ -15,7 +15,7 @@ Install visual studio 2010 or higher, you can download on the official page of [ It takes time the installation and when everything is installed we can start the lab. Other program we need is `fiddler` so you can test the PUT, DELETE and POST * The installation its very simple just download from this page: -https://www.telerik.com/download/fiddler +[telerik](https://www.telerik.com/download/fiddler) For more information you can read in this page of microsoft: [fildder](https://docs.microsoft.com/en-us/azure/search/search-fiddler). ## Getting Started: Install packages @@ -42,11 +42,12 @@ the application. Add a class file and give a name, here the example **“MainModule.cs"** has the following lines of codes. we have 3 classes: +``` 1. MainModule.cs the principal 2. Person.cs the data structure of person 3. HealthP.cs data structure of healthprofile - -1. MainModule.cs : add this in your main module +``` +1. MainModule.cs ``` using Nancy; using System; From 6b766afbe2987985979ea0f5e4d88ff4f2d49cf6 Mon Sep 17 00:00:00 2001 From: mbelenfa Date: Tue, 6 Jun 2017 21:40:09 -0400 Subject: [PATCH 10/13] Update README.md --- projects/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/projects/README.md b/projects/README.md index 73a9c3f..f7994bc 100644 --- a/projects/README.md +++ b/projects/README.md @@ -27,6 +27,7 @@ You can go to this page for more information: https://docs.microsoft.com/en-us/n Once NuGet is installed, open: `"Package Manager Console" from "Tools" -> "Library Package Manager"` and run the following commands one after another. We can select the default project to which the installation should happen. + `PM > Install-Package Nancy` We will get a successful installation message like: ``` From fbd8cc283d0f0d3b4162a1725e57106326d8aa8b Mon Sep 17 00:00:00 2001 From: mbelenfa Date: Tue, 6 Jun 2017 21:42:07 -0400 Subject: [PATCH 11/13] Update README.md --- projects/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/README.md b/projects/README.md index f7994bc..963a4c8 100644 --- a/projects/README.md +++ b/projects/README.md @@ -44,7 +44,7 @@ Add a class file and give a name, here the example **“MainModule.cs"** has the we have 3 classes: ``` -1. MainModule.cs the principal +1. MainModule.cs the main module 2. Person.cs the data structure of person 3. HealthP.cs data structure of healthprofile ``` From dfdeb03c37526cca552dbfec7412432ed6c33ebe Mon Sep 17 00:00:00 2001 From: mbelenfa Date: Tue, 6 Jun 2017 23:09:38 -0400 Subject: [PATCH 12/13] Rename projects/README.md to projects/NANCY.NET 2017/README.md --- projects/{ => NANCY.NET 2017}/README.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename projects/{ => NANCY.NET 2017}/README.md (100%) diff --git a/projects/README.md b/projects/NANCY.NET 2017/README.md similarity index 100% rename from projects/README.md rename to projects/NANCY.NET 2017/README.md From 995caadbd83f7cb50db912a7eee864e30e08328a Mon Sep 17 00:00:00 2001 From: mbelenfa Date: Wed, 7 Jun 2017 00:38:20 -0400 Subject: [PATCH 13/13] Update README.md --- projects/NANCY.NET 2017/README.md | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/projects/NANCY.NET 2017/README.md b/projects/NANCY.NET 2017/README.md index 963a4c8..37f9414 100644 --- a/projects/NANCY.NET 2017/README.md +++ b/projects/NANCY.NET 2017/README.md @@ -223,24 +223,26 @@ Output 1 -> Get["/"], pointing to the root folder. Output 2 -> Get[["/Person/{id}"], pointing to a route path. ``` -## Test POST, PUT and DELETE with Fiddle +## Test POST, PUT and DELETE with Fiddler + ###### Step 1: ->In Composer: Select POST and put `http://localhost:52961/persons` or - Select PUT and put `http://localhost:52961/person/id` or -Select DELETE and put `http://localhost:52961/person/id` +>In Composer: Select `POST` and put `http://localhost:52961/person` or + Select `PUT` and put `http://localhost:52961/person/id` or +Select `DELETE` and put `http://localhost:52961/person/id` In the Request headers tab, enter a JSON content type. `Content-Type:application/json; charset=utf-8` You need more info here but Fiddler will fill the rest for you when you hit execute. -Put your JSON string array in the Request Body +Put your JSON string array in the `Request Body` * For POST method: -`:{"Name":"Andrea","Lastname":"Shaw3","Birthdate":"Inflated3",”Weight”:85.5, “Height”:1.72}` - - +``` +Request Body +:{"Name":"Andrea","Lastname":"Shaw3","Birthdate":"Inflated3",”Weight”:85.5, “Height”:1.72} +``` * For DELETE method: -In the composer select DELETE and put `http://localhost:52961/person/id` , the id you pick for example delete the first person on the list so we will put `http://localhost:52961/person/1` +In the composer select `DELETE` and put `http://localhost:52961/person/id` , the id you pick for example delete the first person on the list so we will put `http://localhost:52961/person/1` `The list id 1 is: [{"name":"Kierkegaard","lastname":"Shaw","birthdate":"Inflated"}]` After enter you can check if the person was deleted put in the browser `http://localhost:52961/person` and should print this list: