In 1972, Siegel [1] developed an algorithm for deciding whether a quadratic equation has an integer solution. In 2004, Grunewald and Segal [2] proved that, more generally, there is an algorithm for deciding whether the integer solution set is finite or infinite, and if finite, list all the solutions.
To "solve" equations with infinitely many integer solutions, we need to decide what "counts" as an acceptable answer. A simple example of Pell equation $x^2-2y^2=1$ shows that it is not always possible to parametrize all integer solutions using polynomial parametrizations. So, we must allow "other" descriptions of the solution set.
In fact, inspecting references [1,2] one may find that they contain "some" description of all solutions.
Every quadratic equation in variables $x=(x_1,\dots,x_n)$ can be written in matrix form as
$$
x^TAx+bx=c,
$$
where $A$ in $n\times n$ matrix, $b$ is a vector, and $c$ is a constant. If $A$ is singular (that is, determinant of $A$ is $0$), then there is a vector $v$ with integer entries such that $Av=0$. Let $P$ be an invertible $n\times n$ matrix with the first column $v$. Then a linear change of variables $x=Py$ results in
$$
y^T P^TAP y + (bP)y = c.
$$
By the choice of $P$, term $y^T P^TAP y$ does not depend on $y_1$, hence the whole equation takes the form $d y_1 = Q(y_2,\dots,y_n)$ for some polynomial $Q$. If $d=0$, we have reduced the equation to one in $n-1$ variables and can proceed by induction. If $d\neq 0$, the equation reduces to parametrising $y_2, \dots, y_n$ such that $Q(y_2,\dots,y_n)$ is divisible by $d$, which is easy.
Now let $A$ be not singular. Then let us do change of variables $x=y+h$, where $h$ is a rational vector. Then the equation reduces to
$$
(y+h)^TA(y+h)+b(y+h)=c.
$$
We can then solve for $h$ to make the linear part $0$, the result is $h=bA^{-1}/2$. This reduces the equation to
$$
y^T A Y = c.
$$
If $c=0$, this is a homogeneous equation, finding its integer solutions is essentially equivalent to finding rational solutions, and the algorithm is described in the previous answers. In short, use Hasse principle to decide if a rational solution exists, and if so, draw a line though it to generate other rational solutions. Then multiply by a common denominator to find integer solutions.
The main case is when $A$ is non-singular and $c\neq 0$. But in this case, as mentioned by Grunewald and Segal, (i) the integral orthogonal group of $A$ is finitely generated, and there is an algorithm for listing the generators, and (ii) there is a finite set of solution to our equations such that all other solutions can be constructed from this finite set by actions of this integral orthogonal group. This gives some "finite description" of all integer solutions in $y$. Because our change of variables involved rational numbers, the original variables $x_i$ are integer subject to some congruence conditions on $y_i$, so we need to start with some initial sets of solutions in $y$, apply actions by generators, and check the congruence conditions. I leave it to others to judge if this counts as an "acceptable" description of the integer solution set to the original equation. I think this description is essentially the best we can hope for.
[1] Siegel, Zur Theorie der quadratischen Formen, Nachr. Akad. Wiss. Göttingen Math.-Phys. Kl. II 1972, 21-46.
[2] Grunewald and Segal, On the integer solutions of quadratic equations, J. Reine Angew. Math. 569 (2004), 13-45.