[ASP.NET] Web Api zwraca zbyt wiele informacji


(Lukasz Pyrzyk) #1

Witam,

 

 

Moje Api opiera się o dwa modele. Api po wywołaniu żądania pobrania informacji o konkretnym Riddle, zwraca mi również Categories oraz przypisane do nich Riddles. Powstaje w ten sposob mała incepcja... 

public Categories()
        {
            Riddles = new HashSet<Riddles>();
        }

        [DatabaseGenerated(DatabaseGeneratedOption.None)]
		[Key]
        public int ID { get; set; }

        [Required]
        [StringLength(75)]
        public string Name { get; set; }

        public virtual ICollection<Riddles> Riddles { get; set; }

public partial class Riddles
    {
        [DatabaseGenerated(DatabaseGeneratedOption.None)]
		[Key]
        public int ID { get; set; }

        [Column(TypeName = "ntext")]
        [Required]
        public string Text { get; set; }

        [Required]
        [StringLength(75)]
        public string Answer { get; set; }

        public int? GoodVote { get; set; }

        public int? BadVote { get; set; }

        public int? CategoryId { get; set; }

        public virtual Categories Categories { get; set; }
    }

Przykład zwróconego JSONa:

{ "$id" : "1",
  "Answer" : "Kot",
  "BadVote" : 0,
  "Categories" : { "$id" : "2",
      "ID" : 1,
      "Name" : "3 lata",
      "Riddles" : [ { "$ref" : "1" },
          { "$id" : "3",
            "Answer" : "Lizak",
            "BadVote" : 0,
            "Categories" : { "$ref" : "2" },
            "CategoryId" : 1,
            "GoodVote" : 0,
            "ID" : 2,
            "Text" : "To cukierek jest z patyczkiem, lubisz lizać go języczkiem"
          },
          { "$id" : "4",
            "Answer" : "Krasnale",
            "BadVote" : 0,
            "Categories" : { "$ref" : "2" },
            "CategoryId" : 1,
            "GoodVote" : 0,
            "ID" : 3,
            "Text" : "Jakie to maluchy, zawsze są brodate i ciężko pracują i zimą i latem"
          },
          [...]
        ]
    },
  "CategoryId" : 1,
  "GoodVote" : 0,
  "ID" : 1,
  "Text" : "W nocnej ciszy łowi myszy"
}

Jak mogę ograniczyć ilość zwracanych danych? Nie potrzebuję Categories i jej elementow...


(Grzelix) #2

atrybut JsonIgnore przy właściwości której nie chcesz serializować:

 

http://stackoverflow.com/questions/11851207/prevent-property-from-being-serialized-in-web-api


(Lukasz Pyrzyk) #3

Dziękuję!