diff --git a/src/main/java/fr/ulille/iut/pizzaland/beans/Ingredient.java b/src/main/java/fr/ulille/iut/pizzaland/beans/Ingredient.java
new file mode 100644
index 0000000000000000000000000000000000000000..15a6b3991f0efd7bb07932e9d8023e5db722df98
--- /dev/null
+++ b/src/main/java/fr/ulille/iut/pizzaland/beans/Ingredient.java
@@ -0,0 +1,72 @@
+package fr.ulille.iut.pizzaland.beans;
+
+import fr.ulille.iut.pizzaland.dto.IngredientDto;
+
+public class Ingredient {
+  private long id;
+  private String name;
+
+  public Ingredient() {
+  }
+
+  public Ingredient(long id, String name) {
+    this.id = id;
+    this.name = name;
+  }
+
+  public void setId(long id) {
+    this.id = id;
+  }
+
+  public long getId() {
+    return id;
+  }
+
+  public String getName() {
+    return name;
+  }
+
+  public void setName(String name) {
+    this.name = name;
+  }
+
+  public static IngredientDto toDto(Ingredient i) {
+    IngredientDto dto = new IngredientDto();
+    dto.setId(i.getId());
+    dto.setName(i.getName());
+
+    return dto;
+  }
+
+  public static Ingredient fromDto(IngredientDto dto) {
+    Ingredient ingredient = new Ingredient();
+    ingredient.setId(dto.getId());
+    ingredient.setName(dto.getName());
+
+    return ingredient;
+  }
+  
+  @Override
+  public boolean equals(Object obj) {
+    if (this == obj)
+        return true;
+    if (obj == null)
+        return false;
+    if (getClass() != obj.getClass())
+        return false;
+    Ingredient other = (Ingredient) obj;
+    if (id != other.id)
+        return false;
+    if (name == null) {
+        if (other.name != null)
+            return false;
+    } else if (!name.equals(other.name))
+        return false;
+    return true;
+  }
+
+  @Override
+  public String toString() {
+    return "Ingredient [id=" + id + ", name=" + name + "]";
+  }
+}
diff --git a/src/main/java/fr/ulille/iut/pizzaland/dao/IngredientDao.java b/src/main/java/fr/ulille/iut/pizzaland/dao/IngredientDao.java
new file mode 100644
index 0000000000000000000000000000000000000000..0fda1f32b55e8631594446fd6039bcd8bdf5f89f
--- /dev/null
+++ b/src/main/java/fr/ulille/iut/pizzaland/dao/IngredientDao.java
@@ -0,0 +1,31 @@
+package fr.ulille.iut.pizzaland.dao;
+
+import java.util.List;
+
+import org.jdbi.v3.sqlobject.config.RegisterBeanMapper;
+import org.jdbi.v3.sqlobject.statement.GetGeneratedKeys;
+import org.jdbi.v3.sqlobject.statement.SqlQuery;
+import org.jdbi.v3.sqlobject.statement.SqlUpdate;
+
+import fr.ulille.iut.pizzaland.beans.Ingredient;
+
+public interface IngredientDao {
+
+  @SqlUpdate("CREATE TABLE IF NOT EXISTS ingredients (id INTEGER PRIMARY KEY, name VARCHAR UNIQUE NOT NULL)")
+  void createTable();
+
+  @SqlUpdate("DROP TABLE IF EXISTS ingredients")
+  void dropTable();
+
+  @SqlUpdate("INSERT INTO ingredients (name) VALUES (:name)")
+  @GetGeneratedKeys
+  long insert(String name);
+
+  @SqlQuery("SELECT * FROM ingredients")
+  @RegisterBeanMapper(Ingredient.class)
+  List<Ingredient> getAll();
+
+  @SqlQuery("SELECT * FROM ingredients WHERE id = :id")
+  @RegisterBeanMapper(Ingredient.class)
+  Ingredient findById(long id);
+}
diff --git a/src/main/java/fr/ulille/iut/pizzaland/dto/IngredientDto.java b/src/main/java/fr/ulille/iut/pizzaland/dto/IngredientDto.java
index 1a9360bf01fa2544b241a017cfa0c056dada02e2..75f914d9a6f1f83084d399635fcacceddafac5ec 100644
--- a/src/main/java/fr/ulille/iut/pizzaland/dto/IngredientDto.java
+++ b/src/main/java/fr/ulille/iut/pizzaland/dto/IngredientDto.java
@@ -1,8 +1,26 @@
 package fr.ulille.iut.pizzaland.dto;
 
 public class IngredientDto {
-
-    public IngredientDto() {
-        
-    }
+	private long id;
+	private String name;
+	
+	public IngredientDto() {
+		
+	}
+	
+	public long getId() {
+		return id;
+	}
+	
+	public void setId(long id) {
+		this.id = id;
+	}
+	
+	public String getName() {
+		return name;
+	}
+	
+	public void setName(String name) {
+		this.name=name;
+	}
 }
diff --git a/src/main/java/fr/ulille/iut/pizzaland/resources/IngredientResource.java b/src/main/java/fr/ulille/iut/pizzaland/resources/IngredientResource.java
index bc19082daf4dd4cd778b956d9607e2f259a94cd1..6439bc11966154f65c662943830a4667580ba6c5 100644
--- a/src/main/java/fr/ulille/iut/pizzaland/resources/IngredientResource.java
+++ b/src/main/java/fr/ulille/iut/pizzaland/resources/IngredientResource.java
@@ -11,22 +11,35 @@ import javax.ws.rs.core.Context;
 import javax.ws.rs.core.Response;
 import javax.ws.rs.core.UriInfo;
 
+import javax.ws.rs.PathParam;
+import fr.ulille.iut.pizzaland.beans.Ingredient;
+
 import fr.ulille.iut.pizzaland.dto.IngredientDto;
 
 @Path("/ingredients")
 public class IngredientResource {
-    private static final Logger LOGGER = Logger.getLogger(IngredientResource.class.getName());
 
-    @Context
-    public UriInfo uriInfo;
+@Context
+public UriInfo uriInfo;
+
+public IngredientResource() {
+}
+
+@GET
+public List<IngredientDto> getAll() {
 
-    public IngredientResource() {
-    }
+    return new ArrayList<IngredientDto>();
+}
 
-    @GET
-    public List<IngredientDto> getAll() {
-        LOGGER.info("IngredientResource:getAll");
+@GET
+@Path("{id}")
+public IngredientDto getOneIngredient(@PathParam("id") long id) {
+	Ingredient ingredient = new Ingredient();
+	ingredient.setId(1);
+	ingredient.setName("mozzarella");
+	  
+	return Ingredient.toDto(ingredient);
 
-	return null;
-    }
 }
+
+}
\ No newline at end of file
diff --git a/src/test/java/fr/ulille/iut/pizzaland/IngredientResourceTest.java b/src/test/java/fr/ulille/iut/pizzaland/IngredientResourceTest.java
index 2c8b1be3f265046d4d3557185aac26b7704ec1ac..75cf2d1776545f6797d2d6d3c4706ff6f8e89e10 100644
--- a/src/test/java/fr/ulille/iut/pizzaland/IngredientResourceTest.java
+++ b/src/test/java/fr/ulille/iut/pizzaland/IngredientResourceTest.java
@@ -2,6 +2,8 @@ package fr.ulille.iut.pizzaland;
 
 import fr.ulille.iut.pizzaland.ApiV1;
 import fr.ulille.iut.pizzaland.dto.IngredientDto;
+import fr.ulille.iut.pizzaland.beans.Ingredient;
+import fr.ulille.iut.pizzaland.dao.IngredientDao;
 
 import org.glassfish.jersey.test.JerseyTest;
 import org.glassfish.jersey.test.TestProperties;
@@ -9,6 +11,7 @@ import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 
+
 import javax.ws.rs.client.Entity;
 import javax.ws.rs.core.GenericType;
 import javax.ws.rs.core.Application;
@@ -25,10 +28,11 @@ import java.util.logging.Logger;
  * la méthode configure() permet de démarrer la ressource à tester
  */
 public class IngredientResourceTest extends JerseyTest {
-    private static final Logger LOGGER = Logger.getLogger(IngredientResourceTest.class.getName());
+	private IngredientDao dao;
     
     @Override
     protected Application configure() {
+       BDDFactory.setJdbiForTests();
        return new ApiV1();
     }
 
@@ -38,12 +42,14 @@ public class IngredientResourceTest extends JerseyTest {
     // https://stackoverflow.com/questions/25906976/jerseytest-and-junit-throws-nullpointerexception
     @Before
     public void setEnvUp() {
-	
+    	dao = BDDFactory.buildDao(IngredientDao.class);
+        dao.createTable();
+
     }
 
     @After
     public void tearEnvDown() throws Exception {
-
+    	dao.dropTable();
     }
 
     @Test
@@ -66,4 +72,24 @@ public class IngredientResourceTest extends JerseyTest {
         assertEquals(0, ingredients.size());
 
     }
+    
+    
+    
+    @Test
+    public void testGetExistingIngredient() {
+    	Ingredient ingredient = new Ingredient();
+        ingredient.setName("mozzarella");
+
+        long id = dao.insert(ingredient.getName());
+        ingredient.setId(id);
+
+        Response response = target("/ingredients/" + id).request().get();
+
+        assertEquals(Response.Status.OK.getStatusCode(), response.getStatus());
+
+        Ingredient result = Ingredient.fromDto(response.readEntity(IngredientDto.class));
+        assertEquals(ingredient, result);
+
+   }
+
 }