It seems that the goal of Pokemon Go is to catch all the different types of Pokemons. But do you have to get all evolved Pokemons as well?
If you want to end up with your Pokedex filled, then yes, you will need to catch, hatch or evolve so that you end up with all the possible Pokemon. It's worth noting that it will be a difficult endeavour to get all 151, because some Pokemon are not available in all regions; the legendary Pokemon are not (yet) available; and Mewtwo/Mew may also not be available. Of course, any of this could change over time.
Ditto may also not be available according to this answer.
For example, seems like Eevee can evolve into 3 types of Pokemons, and one of them is Jolteon. Does that mean I have to catch many Eevees, and then keep one not evolved, and then evolve the other ones to all 3 types of evolved Eevees?
To 'catch them all' doesn't necessarily mean to 'keep them all' - your Pokedex will still record that you have caught Eevee even if you evolve it and no longer technically have it with you. But yes, to record each of Eevee's evolutions, you will need to either catch or hatch enough Eevee's to evolve them, or catch/hatch the evolved forms directly.
I saw that Magikarp needs 400 Magikarp candies to evolve... so we need to catch 400 Magikarps?
No - you get 3 candies from each catch, and 1 candy from each transfer to the Professor. I've outlined the math and the options in this answer.